imagecopyresampled调整大小到最大宽度或高度,但保持比例

时间:2012-01-12 00:53:02

标签: php image-manipulation

我使用以下代码将服务器上的某些图像调整为较小的尺寸:

// get the ratio of the original image
list($orgwidth, $orgheight) = getimagesize($originalImageDir);
// create a thumb and source image to be resized
$thumb = imagecreatetruecolor($width, $height);
$source = imagecreatefromjpeg($originalImageDir);
// resize
imagecopyresampled($thumb, $source, 0, 0, 0, 0, round($height / $ratio), $height, $orgwidth, $thumbheight);
// save new thumb with quality 75
imagejpeg($thumb, $path, 75);

我遇到了以下问题:我的功能分别为300和200。现在,原始图像不是那个比例,所以我希望能够将原件尺寸调整到最大宽度200或最大高度300;无论哪一个都是较大的值。

例如,如果我有1200h x 1000w的图像,我想将其调整为240px和200px的高度,因为在这种情况下200px是我允许的最大宽度。如果我的图像是480h x 300w,我的新图像将被调整为300px高度和187px宽度,因为300px是我的最大高度,这使我低于允许的最大宽度。

希望我有意义。无论如何,如果有任何PHP和数学向导有东西煮熟,请分享:)

谢谢!

1 个答案:

答案 0 :(得分:1)

为什么不看一下像http://pear.php.net/package/Image_Transform/这样的东西,它有不同的图像库驱动程序,只有你想要的功能?