在调整图像大小时,我注意到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的图像
有人知道为什么差异如此之大吗?
尝试在调整大小之前设置图像压缩设置。
$image->setImageCompression(Imagick::COMPRESSION_JPEG);
$image->setImageCompressionQuality(80);
另外,检查结果图像的大小。PHP文档中的注释使我相信thumbnailImage的自动适配部分不像您在IMagick中期望的那样工作。
From PHP Docs:
thumbnailImage的fit功能不像预期的那样工作。相反,使用>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); }