我希望在通过电子邮件发送截图之前尽可能地压缩它们。我对每个截图进行一些处理才能获得最佳压缩率:
- 首先我截取了以下屏幕截图
shutter
:1920x1080px,PNG 压缩 9 -> 大约 450Kb - 然后我将其上传到http://tinypng.org/-> 经过量化后得到了相同的图片,但只剩下大约 150Kb
我怎样才能在像 shutter 这样的截图工具中实现如此好的压缩效果?
技术http://tinypng.org看起来棒极了:
图像中相似的颜色被组合在一起。这种技术称为“量化”。由于颜色数量减少,24 位 PNG 文件可以转换为小得多的 8 位索引颜色图像。所有不必要的元数据也被剥离。结果:微小的 8 位 PNG 文件
但是快门没有“量化”选项。
质量不是那么重要,我并不介意让它更有损。也许 GIF 可以压缩得更小?或者颜色更少?
答案1
optipng
当然值得一看。它是命令行,但您可以.desktop
为其编写处理程序。它用于批处理相当简单:
optipng -o7 *.png
但请注意,这是破坏性的。它会覆盖你的文件。这通常没问题,但如果你使用的是 fat 格式(例如 Adobe Fireworks PNG),你可能会失去有用的功能。以下是选项的完整列表:
$ optipng -h
OptiPNG 0.6.4: Advanced PNG optimizer.
Copyright (C) 2001-2010 Cosmin Truta.
Synopsis:
optipng [options] files ...
Files:
Image files of type: PNG, BMP, GIF, PNM or TIFF
Basic options:
-?, -h, -help show this help
-o <level> optimization level (0-7) default 2
-v verbose mode / show copyright and version info
General options:
-fix enable error recovery
-force enforce writing of a new output file
-keep keep a backup of the modified files
-preserve preserve file attributes if possible
-quiet quiet mode
-simulate simulation mode
-snip cut one image out of multi-image or animation files
-out <file> write output file to <file>
-dir <directory> write output file(s) to <directory>
-log <file> log messages to <file>
-- stop option switch parsing
Optimization options:
-f <filters> PNG delta filters (0-5) default 0,5
-i <type> PNG interlace type (0-1) default <input>
-zc <levels> zlib compression levels (1-9) default 9
-zm <levels> zlib memory levels (1-9) default 8
-zs <strategies> zlib compression strategies (0-3) default 0-3
-zw <window size> zlib window size (32k,16k,8k,4k,2k,1k,512,256)
-full produce a full report on IDAT (might reduce speed)
-nb no bit depth reduction
-nc no color type reduction
-np no palette reduction
-nx no reductions
-nz no IDAT recoding
Optimization details:
The optimization level presets
-o0 <=> -o1 -nx -nz
-o1 <=> [use the libpng heuristics] (1 trial)
-o2 <=> -zc9 -zm8 -zs0-3 -f0,5 (8 trials)
-o3 <=> -zc9 -zm8-9 -zs0-3 -f0,5 (16 trials)
-o4 <=> -zc9 -zm8 -zs0-3 -f0-5 (24 trials)
-o5 <=> -zc9 -zm8-9 -zs0-3 -f0-5 (48 trials)
-o6 <=> -zc1-9 -zm8 -zs0-3 -f0-5 (120 trials)
-o7 <=> -zc1-9 -zm8-9 -zs0-3 -f0-5 (240 trials)
The libpng heuristics
-o1 <=> -zc9 -zm8 -zs0 -f0 (if PLTE is present)
-o1 <=> -zc9 -zm8 -zs1 -f5 (if PLTE is not present)
The most exhaustive search (not generally recommended)
[no preset] -zc1-9 -zm1-9 -zs0-3 -f0-5 (1080 trials)
Examples:
optipng file.png (default speed)
optipng -o5 file.png (moderately slow)
optipng -o7 file.png (very slow)
optipng -i1 -o7 -v -full -sim experiment.png
还有其他工具(pngcrush
例如),您可能会发现它们更有用,但我从未偏离optipng
,只是因为它的实用简单性。
这里有一个相当全面的 PNG 压缩演示,非常有趣: