使用Imagick和Gmagick调整大小后的图像文件大小

时间:2011-11-02 09:17:49

标签: php imagemagick imagick graphicsmagick gmagick

在调整图像大小时,我注意到Imagick和Gmagick使用相同的选项在HDD上生成具有不同文件大小的图像:

$image = new Imagick("c.jpg");
$image->thumbnailImage(260,195); 
$image->writeImage("c_imagick.jpg");

输出88kb的图像

$image = new Gmagick("c.jpg");
$image->thumbnailImage(260,195); 
$image->writeImage("c_gmagick.jpg");

输出15kb的图像

有人有任何想法,为什么差异如此巨大?

1 个答案:

答案 0 :(得分:1)

尝试在调整大小之前设置图像压缩设置。

     $image->setImageCompression(Imagick::COMPRESSION_JPEG);
     $image->setImageCompressionQuality(80);

此外,请检查生成图像的大小。 PHP文档中的注释让我相信thumbnailImage的自动匹配部分不能像你在IMagick中那样工作。

来自PHP文档:

  

thumbnailImage的拟合功能无法像预期的那样工作。相反,使用>这可以制作最大为200x82的缩略图:

    // Create thumbnail max of 200x82
    $width=$im->getImageWidth();
    if ($width > 200) { $im->thumbnailImage(200,null,0); }

    $height=$im->getImageHeight();
    if ($height > 82) { $im->thumbnailImage(null,82,0); }