imagemagick调整大小和质量PNG

jor*_*gen 18 png image imagemagick image-processing

在我的应用程序中,我需要调整大小并使PNG文件的质量更差.

在完整尺寸下,PNG为3100x4400px,使用2,20MB磁盘空间.

运行以下命令时:

convert -resize 1400 -quality 10 input.png output.png
Run Code Online (Sandbox Code Playgroud)

使用5,33MB磁盘空间将图像大小调整为1400x2000.

所以我的问题是:如何减小文件大小?

Kor*_*nel 11

  1. 您可以使用海报化进一步降低PNG的质量:

    https://github.com/pornel/mediancut-posterizer(Mac的GUI)

    这是一个有损操作,允许zlib更好地压缩.

  2. 使用pngquant将图像转换为PNG8 .

    它将图像缩小为256色,因此质量取决于图像的类型,但是pngquant可以制作非常好的调色板,因此您可能会惊讶于它的工作频率.

  3. 使用Zopfli-pngAdvPNG可以更好地重新压缩图像.

    这是无损的,如果您有备用的CPU周期,建议所有图像使用.


spe*_*.sm 11

使用imagemagick调整大小后,您可以使用 压缩图像pngquant

在 Mac 上(使用自制软件)brew install pngquant然后:

pngquant <filename.png>
Run Code Online (Sandbox Code Playgroud)

这将创建一个filename-fs8.png通常尺寸小得多的新图像。


jos*_*ris 6

对于到达这里想要粘贴单行的懒人:

mogrify -resize 50% -quality 50 *.png && pngquant *.png --ext .png --force 
Run Code Online (Sandbox Code Playgroud)

这会修改当前目录中的所有 png,因此请确保您有备份。根据您的需要修改调整大小和质量参数。我做了一个快速实验,首先是 mogrify,然后是 pngquant,结果图像尺寸明显更小。

pngquant 的 ubuntu 软件包称为“pngquant”,但我已经将它安装在 20.04LTS 上,所以看起来它可能默认存在。


mor*_*pus 5

帮助页面说,-quality与 PNG 一起使用的选项设置 zlib 的压缩级别,其中(大致)0 是最差的压缩,100 - 是最好的(默认为 75)。所以尝试设置-quality为 100 甚至删除该选项。

另一种方法是指定PNG:compression-level=NPNG:compression-strategy=NPNG:compression-filter=N获得更好的结果。

http://www.imagemagick.org/script/command-line-options.php#quality