Compression 缩小.png文件的大小

Compression 缩小.png文件的大小,compression,png,Compression,Png,有许多程序声称可以减小.png文件的大小,但众所周知的optipng,pngcrush,pngquant都不允许我缩小到指定的大小pngcrush尽了最大努力,但结果还是远远满足了我的需求。对于.jpg文件,jpegoptim有一个-m选项,允许我缩小到需要的大小。显而易见的解决方案似乎是转换成jpg,缩小到合适的大小,然后再转换回来,但这也不起作用,重新构建的.png文件只是跳回其原始大小 这可能与.png文件的结构有关 有没有办法得到一个小的png文件?是一个我需要压缩到1K字节以下的示例

有许多程序声称可以减小
.png
文件的大小,但众所周知的
optipng
pngcrush
pngquant
都不允许我缩小到指定的大小
pngcrush
尽了最大努力,但结果还是远远满足了我的需求。对于
.jpg
文件,
jpegoptim
有一个-m选项,允许我缩小到需要的大小。显而易见的解决方案似乎是转换成
jpg
,缩小到合适的大小,然后再转换回来,但这也不起作用,重新构建的
.png
文件只是跳回其原始大小

这可能与.png文件的结构有关

有没有办法得到一个小的png文件?是一个我需要压缩到1K字节以下的示例


谢谢你的建议

我能想到的解决您问题的唯一方法是使用
.jpg
而不是
.png
.jpg
格式主要用于高损耗压缩,但仍能获得足够好的图像。另一方面,
.png
将追求完全透明且无质量损失。总之,
.jpg
非常适合在质量不重要的情况下获取较小的文件,
.png
非常适合于质量和颜色真正重要的高质量图像

资料来源:

我可以使用8位调色板PNG格式将9.5 KB的文件压缩到3.4 KB。图像有一个透明的边界,它为整个图像添加了不必要的像素和一个alpha通道,因为它是矩形的,所以不需要。在剥离透明边界、消除alpha通道并使用调色板之后,我可以将其降到3.2kb

为了更进一步,我必须使用JPEG进行有损压缩。在非常低的图像质量(100分之5)下,我可以将其降低到1KB。它显示了来自严重压缩的一些伪影(查看提示符>和u以查看其中的一些):


使用ImageMagick减少颜色,然后使用pngcrush去除辅助块:

magick in.png -colors 8 temp.png
pngcrush -rem alla temp.png out.png
结果生成一个1621字节的文件。如果您有旧版本的ImageMagick,请使用“转换”而不是“magick”。使用“-colors 4”而不是“-colors 8”会得到一个1015字节的文件,但是抖动看起来非常不稳定


请注意,这些会保留图像的透明度,而转换为JPEG会丢失透明度并使背景成为纯色。

PNG是无损的,您不能假装将PNG图像压缩到预先设定的大小。感谢大家的评论。不幸的是,我的问题是,我需要一个非常小的.png文件作为fvwm的按钮图标。由于某些无法解释的原因,fvwm不接受.jpg图像,但需要很小的图像!!!看来我唯一的办法就是鼓励fvwm的人允许使用jpg图像。@LeoSimon如果你需要低于1k,你就真的处在只有一堆标题信息的边缘,可能还有一些无关的数据块,这会让你的预算大打折扣。正如大家所说,PNG并不是为此而设计的。这就是说,这幅图像在图形上相当简单,我怀疑图像本身可以通过使用纯色块、没有不必要的渐变、严格或没有抗锯齿等轻松地“为PNG重新设计”。我确信视觉上相似的图像可以在1k以下与PNG匹配。