您是否知道任何工具(最好是命令行)能够自动无损地优化我可以集成到构建环境中的JPEG?对于我目前正在使用PNGOUT的PNG,它通常可以节省大约40%的带宽/图像大小。
至少,我想要一个可以从JPG剥离元数据的工具 - 我注意到一个奇怪的情况,我试图从照片制作缩略图,并且不能使它小于34 kB。在进一步研究之后,我发现EXIF数据仍然是图像的一部分,删除元数据后缩略图为3 kB。
除此之外 - 是否有可能无损地进一步优化JPG? PNG优化器尝试不同的压缩策略,霍夫曼编码的随机初始化等。
我知道大多数节省来自JPEG质量参数,而且这是一个相当主观的衡量标准。我只是在寻找一个可以作为构建步骤运行的工具,并且无损地从图像中挤出几个字节。
答案 0 :(得分:72)
我写了一个GUI for all image optimization tools I could find,包括MozJPEG和jpegoptim
,用于优化霍夫曼表格,渐进式扫描以及(可选)删除不可见的元数据。
如果你没有Mac,我也有一个适用于任何平台的基本web interface。
答案 1 :(得分:67)
我使用libjpeg进行无损操作。它包含一个命令行工具jpegtran,可以执行您想要的任何操作。使用命令行选项-copy none
,所有元数据都被剥离,-optimize
执行霍夫曼压缩的无损优化。您还可以使用-progressive
将图像转换为渐进模式,但这可能会导致兼容性问题(是否有人对此有更多了解?)
答案 2 :(得分:12)
[仅限WINDOWS]
RIOT(激进图像优化工具) 这是我找到的最好的图像优化工具!
通过二次采样,您可以轻松获得低至800KB的10MB图像。 它支持PNG,GIF和JPEG。 它甚至可以集成到上下文菜单中,因此您可以直接在那里发送图片。 允许您旋转,重新调整大小,压缩到指定的KB等。还有GIMP和IrfanView等插件。
如果要将其合并到自己的程序或java脚本/ c ++程序中,还可以使用DLL。
另一种选择是http://pnggauntlet.com/ PNGGAUNTLET需要永远,但它做得非常好。
[仅限WINDOWS]
答案 3 :(得分:11)
名为JPEGmini的新服务产生了令人难以置信的结果。 遗憾的是它只在线。 编辑:现在可用于Windows和Mac
答案 4 :(得分:10)
尝试了上面的一些建议 - 我个人是在无损压缩之后。
我的示例图片的原始大小为67,737字节。
使用kraken.io,它下降到64,718 使用jpegtran,它下降到64,718 使用雅虎smush-it,它下降到61,746 使用imagemagick(-strip),它降至65,312
smush.py选项看起来很有希望,但安装过于复杂,我无法快速完成
jpegrescan看起来很有希望,但似乎是unix而我正在使用windows
jpegmini并非无损,但我无法区分(低至22,172)
plinth的Altrasoft jpegstripper应用程序无法在我的Windows 7上运行
jpegoptim不是窗户 - 对我没有好处
Riot(保持100%的质量)降低到63,416并且色度子采样设置为高,它降低到61,912 - 我不知道这是否是无损的,但我觉得它看起来更轻比原来的。
所以我的判决是雅虎smushit,如果它必须是无损的
答案 5 :(得分:9)
我会尝试Imagemagick。它有大量的命令行选项,它是免费的,并有一个很好的许可证。 http://www.imagemagick.org
似乎有一个名为Strip的选项可以帮助您: http://www.imagemagick.org/script/command-line-options.php#strip
答案 6 :(得分:7)
ImageOptim真的很光滑。作者发布的命令行选项将填充GUI并显示进度。我使用jpegtran进行优化并转换为渐进式,然后使用ImageOptim进行进一步的渐进式优化和其他文件类型。
重复使用此论坛中的脚本代码(所有文件都已替换):
for file in $(find $DIR -type f \( -name "*.jpg" -or -name "*.jpeg" -or -name "*.JPG" \)); do
echo found $file for optimizing...
jpegtran -copy comments -optimize -progressive -outfile $file $file
done
for file in $(find $DIR -type f \( -name "*.jpg" -or -name "*.png" -or -name "*.gif" \)); do
do
echo found $file for optimizing...
open -a ImageOptim.app $file
done
答案 7 :(得分:4)
如果有人在看,我已经写了雅虎Smush.it的离线版本。它将无损地优化png,jpgs和gif(动画和静态):
答案 8 :(得分:4)
您可以使用jpegoptim默认情况下无损地优化jpeg文件。 --strip-all
选项会删除所有额外的嵌入信息。您还可以使用--max
开关指定有损模式,当您使用非常高质量的设置保存图像时,此功能非常有用,例如,这不是必需的。网页内容。
您获得与jpegtran类似的优化(请参阅OutOfMemory的回答),但jpegoptim无法保存为渐进式jpeg。
答案 9 :(得分:4)
我编写了一个名为'picopt'的命令行工具(类似于ImageOptim),它使用外部程序来优化JPEG,PNG,GIFS,动画GIFS甚至漫画书存档内容(CBR / CBZ)。
这适用于OS X或Linux系统上的自制软件,你已经安装了jpegrescan,jpegtran,optipng,gifsicle等工具。
答案 10 :(得分:3)
我也会推荐ImageMagick。它有一个命令行选项来删除EXIF元数据
mogrify -strip image.jpg
还有很多其他工具可以做同样的事情。
就重新压缩JPEG而言,请不要这样做。 JPEG开始时是有损耗的,因此任何形式的再压缩都只会损害图像质量。但是,如果您使用无损编码图像,则某些编码器比其他编码器做得更好。我注意到,使用Photoshop完成的JPEG一直看起来比使用ImageMagick编码时更好(尽管文件大小相同),因为complicated reasons。此外(这与您相关),我知道至少Photoshop可以将JPEG保存为优化,这意味着它们会丢弃与您可能不关心保存几KB的某些内容的兼容性。此外,请确保您没有嵌入任何颜色配置文件,并且您可以保存另外几KB。
答案 11 :(得分:2)
我建议使用http://kraken.io这是超快的webapp,它会优化你的PNG和JPEG文件,远远优于smush.it。
答案 12 :(得分:2)
我建议使用JpegOptim,它是免费的,非常好,你可以指定质量,你想要的大小......并且易于在命令行中使用。
答案 13 :(得分:1)
我建议将其用于近透明度:
convert 'yourfile.png' ppm:- | jpeg-recompress -t 97 -q veryhigh -a -m smallfry -s -r -S disable - yourfile.jpg
它使用来自imagemagick的jpeg-archive的convert
和jpeg-recompress
。
两者都是开源的,适用于Windows,Mac和Linux。您可能希望根据不同的质量期望调整上述选项。