PHP高档图像?

时间:2013-08-08 07:27:58

标签: php image scale

我是php的新手,并试图了解图像升级。你能否告诉我如何将图像升级到一定的尺寸?例如,我想在保持纵横比的同时重新调整以下图像的大小。如果可以做到这一点,请你给我一个例子 enter image description here

4 个答案:

答案 0 :(得分:1)

$source_image = imagecreatefromjpeg("osaka.jpg");
$source_imagex = imagesx($source_image);
$source_imagey = imagesy($source_image);
$dest_imagex = 300;
$dest_imagey = 200;
$dest_image = imagecreatetruecolor($dest_imagex, $dest_imagey);

质量差,但速度很快:

imagecopyresized($dest_image, $source_image, 0, 0, 0, 0, 
            $dest_imagex, $dest_imagey, $source_imagex, $source_imagey);

质量最好但速度慢:

imagecopyresampled($dest_image, $source_image, 0, 0, 0, 0, 
            $dest_imagex, $dest_imagey, $source_imagex, $source_imagey);

答案 1 :(得分:0)

如果你真的想用PHP来做,你可以看一下“imagecopyresampled”函数:

imagecopyresampled on php.net with examples

但是如果你想保持比例,你必须计算它并手动应用于宽度和高度。

答案 2 :(得分:0)

您可以通过将一侧设置为自定义长度并将另一侧设置为“自动”来升级html / CSS中的图像。没有必要在php中升级它,因为放大的图像不包含比“普通”版本更多的信息。它只消耗更多带宽。

<img src="http://placekitten.com/50/50" style="width: 50px; height: auto;" />

<img src="http://placekitten.com/50/50" style="width: 200px; height: auto;" />

请参阅this fiddle

答案 3 :(得分:0)

图像放大

// creating image resource from image path (also supports url)
$source_image = imagecreatefromjpeg($destinationReal); // 1150x235 px

// getting source image dimension
$source_imagex = imagesx($source_image);
$source_imagey = imagesy($source_image);

// set new image dimension
$dest_imagex = 1150;
$dest_imagey = 348; // in my case I only upscale the height

// create image (in memory)
$dest_image = imagecreatetruecolor($dest_imagex, $dest_imagey);
imagecopyresampled($dest_image, $source_image, 0, 0, 0, 0,
                $dest_imagex, $dest_imagey, $source_imagex, $source_imagey);

// save new image
imagejpeg($dest_image, $destination);