在我的应用程序中,我需要调整大小并使PNG文件的质量更差。
在完整尺寸下,PNG为3100x4400px,使用2,20MB磁盘空间。
运行以下命令时:
convert -resize 1400 -quality 10 input.png output.png
使用5,33MB磁盘空间将图像调整为1400x2000。
所以我的问题是:如何减小文件大小?
答案 0 :(得分:11)
您可以使用海报来进一步降低PNG的质量:
https://github.com/pornel/mediancut-posterizer(Mac GUI)
这是一项有损操作,可以让zlib更好地压缩。
使用pngquant将图片转换为PNG8。
它将图像缩小为256色,因此质量取决于图像的类型,但是pngquant可以制作非常好的调色板,因此您可能会对它的工作频率感到惊讶。
使用Zopfli-png或AdvPNG更好地重新压缩图像。
如果您有剩余的CPU周期,这对于所有图像都是无损的。
答案 1 :(得分:4)
帮助页面说明,PNG使用的-quality
选项设置了zlib的压缩级别,其中(大致)0是最差压缩,100 - 是最好的(默认值是75)。因此,请尝试将-quality
设置为100,或者甚至删除该选项。
另一种方法是指定PNG:compression-level=N
,PNG:compression-strategy=N
和PNG:compression-filter=N
以获得更好的效果。
http://www.imagemagick.org/script/command-line-options.php#quality
答案 2 :(得分:1)
使用 int[] result = new int[ar1.length + ar2.length];
for(int i = 0; i < result.length; i++) {
result[i] = i < ar1.length ? ar1[i] : ar2[i - ar1.length]; // comparison
}
调整大小后,可以使用pngquant
压缩图像。
在Mac上(使用自制软件) int[] result = new int[ar1.length + ar2.length];
for(int i = 0; i < ar1.length; i++) {
result[i] = ar1[i]; // no
result[ar1.length + i] = ar2[i]; // comparison
}
,然后:
imagemagick
这将创建一个通常尺寸要小得多的新图像brew install pngquant
。
答案 3 :(得分:-3)
我发现最好的方法是使用
- density [value]
参数。