在调整图像大小时,我注意到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的图像
有人有任何想法,为什么差异如此巨大?
答案 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); }