【问题标题】:How to optimize PHP Imagick JPG to PNG conversion如何优化 PHP Imagick JPG 到 PNG 的转换
【发布时间】: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


【解决方案1】:

您无法从原件中获得相似的尺寸。

在此处查看手册:http://php.net/manual/en/imagick.constants.php

请记住,PNG 是无损图像,与 JPG 不同,它不会影响实际图像质量。

使用 Imagick 转换图像是可以的,但如果你想压缩 PNG 文件,不要依赖 Imagick,而是使用 PngCrush。

或者你可以使用这个来源 http://optipng.sourceforge.net/pngtech/optipng.html

【讨论】:

    猜你喜欢
    • 2011-09-30
    • 2013-07-26
    • 2012-02-06
    • 2012-09-13
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多