php改变图片大小使用imagecopyresampled()质量更高

php程序中改变图片大小的函数大多数人都想到用imagecopyresized(),不过经过测试比较发现,使用imagecopyresampled()改变的图片质量更高。

下面我们来看看两者的比较结果。

原图:

使用imagecopyresized()将图片缩小一半

代码:

  • <?php
  • // File and new size
  • $filename = 'test.jpg';
  • $percent = 0.5;
  • // Content type
  • header('Content-Type: image/jpeg');
  • // Get new sizes
  • list($width, $height) = getimagesize($filename);
  • $newwidth = $width * $percent;
  • $newheight = $height * $percent;
  • // Load
  • $thumb = imagecreatetruecolor($newwidth, $newheight);
  • $source = imagecreatefromjpeg($filename);
  • // Resize
  • imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  • // Output
  • imagejpeg($thumb);
  • ?>

改变后的图片:

使用imagecopyresampled()将图片缩小一半

代码:

  • <?php
  • // The file
  • $filename = 'test.jpg';
  • $percent = 0.5;
  • // Content type
  • header('Content-Type: image/jpeg');
  • // Get new dimensions
  • list($width, $height) = getimagesize($filename);
  • $new_width = $width * $percent;
  • $new_height = $height * $percent;
  • // Resample
  • $image_p = imagecreatetruecolor($new_width, $new_height);
  • $image = imagecreatefromjpeg($filename);
  • imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  • // Output
  • imagejpeg($image_p, null, 100);
  • ?>

改变后的图片:

可以看出,imagecopyresampled()改变图片大小后质量要比imagecopyresized()高。

posted @ 2016-12-29 15:51  天涯海角路  阅读(808)  评论(0)    收藏  举报