【发布时间】:2018-05-28 11:10:32
【问题描述】:
我正在使用 PHP 中的 imagick 实现将 JPEG 转换为 PNG 格式的代码。
问题在于转换后的 PNG 图像是 JPEG 中原始图像的 4 倍。
如何优化它以获得与原始尺寸相似的尺寸?
转换代码:
private function JPG2PNG($path, $newPath) {
$image = new Imagick();
$image->getCompressionQuality();
$image->readimage($path);
$image->setImageFormat("png32");
$image->setImageCompressionQuality(0);
$image->writeImage($newPath);
unlink($path);
}
【问题讨论】:
-
试试
$image->setImageCompressionQuality(50); -
您无法获得与原始文件相似的大小 - PNG 是无损的,而 JPEG 是有损的。但是你为什么要转换成 PNG?
-
@xs0 我需要将所有图像转换为 PNG,因为其他第三方脚本只接受 PNG 图像。
-
@JoseD.Jurado 好的,这是转换的充分理由 :) 但是,由 JPEG 制成的 PNG 在几乎所有情况下都会显着变大,您对此无能为力..
-
您是否有证据表明任何其他工具都可以从相同的图像中生成小得多的 PNG...?
标签: php optimization png jpeg imagick