Imagick 和 jpeg 图像压缩 - 没有变化?
Imagick and jpeg image compression - no change?
因此,我正在使用 Imagick PHP 库测试我们的一些图像,以查看我们想要使用的压缩方式。但是无论我做什么,输出文件似乎都没有任何变化。这是我的基本流程:
$original_image = new \Imagick( $image_url );
foreach ( ['original', '92', '80', '60', '40'] as $compression_size )
{
$tester = clone $original_image;
// don't compress the original
if ( 'original' != $compression_size )
{
$tester->setImageCompression(Imagick::COMPRESSION_JPEG);
$tester->setCompressionQuality( (int) $compression_size);
}
$filename: <original base> . "-$compression_size.jpg";
file_put_contents($filename, $tester->getImageBlob() );
$tester = null;
}
结果表明,各种压缩之间的文件大小没有变化,从视觉上看,原始版本和压缩= 40版本之间没有区别。我在这里做错了什么?
来自文档 (http://php.net/manual/en/imagick.setcompressionquality.php):
This method only works for new images e.g. those created through Imagick::newPseudoImage. For existing images you should use Imagick::setImageCompressionQuality().
所以,替换
$tester->setCompressionQuality( (int) $compression_size);
为了
$tester->setImageCompressionQuality( (int) $compression_size);
因此,我正在使用 Imagick PHP 库测试我们的一些图像,以查看我们想要使用的压缩方式。但是无论我做什么,输出文件似乎都没有任何变化。这是我的基本流程:
$original_image = new \Imagick( $image_url );
foreach ( ['original', '92', '80', '60', '40'] as $compression_size )
{
$tester = clone $original_image;
// don't compress the original
if ( 'original' != $compression_size )
{
$tester->setImageCompression(Imagick::COMPRESSION_JPEG);
$tester->setCompressionQuality( (int) $compression_size);
}
$filename: <original base> . "-$compression_size.jpg";
file_put_contents($filename, $tester->getImageBlob() );
$tester = null;
}
结果表明,各种压缩之间的文件大小没有变化,从视觉上看,原始版本和压缩= 40版本之间没有区别。我在这里做错了什么?
来自文档 (http://php.net/manual/en/imagick.setcompressionquality.php):
This method only works for new images e.g. those created through Imagick::newPseudoImage. For existing images you should use Imagick::setImageCompressionQuality().
所以,替换
$tester->setCompressionQuality( (int) $compression_size);
为了
$tester->setImageCompressionQuality( (int) $compression_size);