图像调整大小同时保持比例

时间:2010-01-28 18:15:56

标签: php mysql html css

我正在使用MySQL列出照片:

<?php
$a = mysql_query("select * from x");
?>
<?php while ($w=mysql_fetch_array($a)) { ?>
    <img src="<?=$w[url]?>" alt="<?=$w[name]?>" width="150" height="110" />
<? } ?>

如何保持宽高比?尺寸为150x500像素的图像变得非常扭曲。我该如何解决这个问题?

7 个答案:

答案 0 :(得分:3)

在HTML中仅指定width-only或height-only将保持比率。

或者您可以使用智能图像缩放器等脚本动态调整照片大小:http://shiftingpixel.com/2008/03/03/smart-image-resizer/

答案 1 :(得分:3)

你可以使用php获取图像大小:

list($width, $height) = getimagesize($file);

答案 2 :(得分:3)

尝试这样的事情:

$ratio = $height / $width;
$new_width = 150;
$new_height = $ratio * $new_width;

答案 3 :(得分:2)

只需指定一个尺寸(宽度或高度,但不是两者),它将保持比率。使用CSS,您还可以仅指定maximum widthmaximum height

<img src="<?=$w[url]?>" alt="<?=$w[name]?>" style="max-width:150px; max-height:110px" />

答案 4 :(得分:1)

如果您只指定宽度,则所有浏览器(我知道...)都会正确缩放图像。

但是,如果要加载大量图像,可能需要考虑制作缩略图。

答案 5 :(得分:1)

设置两者的宽度和高度会强制浏览器重新设置它以匹配您告诉它的内容。

只设置一个(宽度或高度)调整大小,以保持图像的比例。

您可以使用PHP函数getImageSize来获取图像的实际宽度和高度,然后根据height / width = new_width / new_height

重新调整比例调整大小

答案 6 :(得分:1)

您可以使用调整大小脚本重新取样(调整大小)图像。

这里有一个好的脚本: http://shiftingpixel.com/2008/03/03/smart-image-resizer/

使用:

<img src="/image.php?image=/img/test.jpg&amp;width=150&amp;height=500" alt="Test" />

我打算始终使用此高度/宽度,您可以直接在数据库中插入重新采样的图像。这样您就不会在服务器上浪费空间。如果您打算在将来使用许多高度/宽度或更改这些尺寸,您应该像现在一样保留原件。

相关问题