1

在调整图像大小时,我注意到 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 的图像

有人知道,为什么差异如此之大?

4

1 回答 1

1

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

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

此外,检查生成图像的大小。PHP 文档中的注释让我相信 thumbnailImage 的自动调整部分不像您在 IMagick 中所期望的那样工作。

来自 PHP 文档:

thumbnailImage 的拟合功能并不像人们预期的那样工作。相反,使用 >this 制作最大为 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); }
于 2011-11-03T16:19:26.127 回答