JPEG优化工具?

你知道任何工具(最好是命令行)自动无损地优化JPEG,我可以集成到我们的编译环境吗? 对于PNG,我目前使用的是PNGOUT ,通常可以节省大约40%的带宽/图像大小。

至less,我想要一个可以从JPG中去除元数据的工具 – 我注意到一个奇怪的情况,我试图从照片中制作缩略图,并且不能小于34 kB。 在调查了更多之后,我发现EXIF数据仍然是图像的一部分,删除元数据后缩略图是3 kB。

除此之外 – 是否有可能进一步优化JPGs无损? PNG优化器尝试不同的压缩策略,霍夫曼编码的随机初始化等。

我知道大部分节省来自JPEG质量参数,而这是一个相当主观的测量。 我只是在寻找一个可以作为构build步骤运行的工具,并且无损压缩图像中的几个字节。

我使用libjpeg进行无损操作。 它包含一个命令行工具jpegtran ,可以做你想做的。 使用命令行选项-copy none将删除所有元数据,并且-optimize会对Huffmann压缩进行无损优化。 您也可以将图像转换为逐行模式,但这可能会导致兼容性问题(有人知道更多吗?)

我为所有图像优化工具编写了一个GUI ,包括MozJPEG和jpegoptim ,可以优化霍夫曼表,逐行扫描和(可选)删除不可见的元数据。

ImageOptim冲洗它

如果你没有Mac,我也有一个基本的networking界面 ,可以在任何平台上运行。

[WINDOWS ONLY]

RIOT(自由基图像优化工具)这是我find的最棒的图像优化工具!

http://luci.criosweb.ro/riot/

通过子采样,您可以轻松地将10MB图像下载到800KB。 它支持PNG,GIF和JPEG。 它甚至集成到上下文菜单中,所以你可以直接在那里发送图片。 允许您旋转,重新resize,压缩到指定的KB等等。 也有GIMP和IrfanView和其他东西的插件。

如果你想把它合并到你自己的程序或java脚本/ c ++程序中,也有一个DLL可用。

另一种select是http://pnggauntlet.com/ PNGGAUNTLET需要永远,但它做了一个不错的工作。

[WINDOWS ONLY]

一项名为JPEGmini的新服务会产生令人难以置信的结果。 一个耻辱,它只在线上。 编辑 :它现在可用于Windows和Mac

尝试了上面的一些build议 – 我个人是在无损压缩之后。

我的示例图像的原始大小为67,737字节。

使用kraken.io,它下降到64,718使用jpegtran,它下降到64,718使用雅虎smush它,它下降到61,746使用imagemagick(-strip),它下降到65,312

smush.py选项看起来很有前途,但是安装过于复杂,无法快速完成

jpegrescan看起来也很有希望,但似乎是unix,我正在使用Windows

jpegmini不是没有损失的,但我不能分辨(下降到22,172)

基座的Altrasoft jpegstripper应用程序不能在我的Windows 7上工作

jpegoptim不是窗户 – 对我来说不好

防暴(保持100%的质量)下降到63,416,色度采样设置为高,将其降低到61,912 – 我不知道这是否是无损的,我认为它看起来比原来更轻。

所以我的判决是雅虎smushit,如果它必须是无损的

我会尝试Imagemagick。 它有吨的命令行选项,它的免费,并有一个很好的许可证。 http://www.imagemagick.org

似乎有一个选项可能会帮助你:地带

ImageOptim真的很漂亮。 作者发布的命令行选项将填充GUI并显示进度。 我使用jpegtran优化和转换为渐进式,然后ImageOptim进一步渐进式优化和其他文件types。

脚本代码的重用也在这个论坛中find(所有的文件都replace了):

jpegtran

 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 

ImageOptim

 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 

如果有人在寻找,我已经写了一个雅虎Smush.it的离线版本。 它将无损优化PNG,JPG和GIF(animation和静态):

http://github.com/thebeansgroup/smush.py

您可以使用jpegoptim默认无损优化jpeg文件。 --strip-all选项去除所有额外的embedded信息。 您还可以使用--max开关指定有损耗模式,这在使用非常高的质量设置保存图像时非常有用,而这对于例如。 网页内容。

您可以使用jpegtran获得类似的优化(请参阅OutOfMemory的回答),但jpegoptim无法保存为渐进式jpeg。

我已经写了一个名为“picopt”的命令行工具(类似于ImageOptim),它使用外部程序来优化JPEG,PNG,GIFS,animationGIFS甚至漫画书档案内容(CBR / CBZ)。

这适合在OS X或Linux系统上使用自制软件,在这些系统上安装了jpegrescan,jpegtran,optipng,gifsicle等工具。

https://github.com/ajslater/picopt

我也会推荐ImageMagick 。 它有一个命令行选项来删除EXIF元数据

 mogrify -strip image.jpg 

有很多其他的工具可以做同样的事情。

至于重新压缩的JPEG,不要。 JPEG是有损的开始,所以任何forms的再压缩只会损害图像质量。 但是,如果你有无损编码图像,一些编码器比其他编码器做得更好。 我注意到用Photoshop完成的JPEG一贯比用ImageMagick编码(尽pipe文件大小相同)由于复杂的原因而看起来更好。 此外(这与你有关),我知道,至lessPhotoshop可以保存为优化的 JPEG,这意味着他们与一些可能不需要保存几KB的东西的兼容性下降。 此外,请确保您没有embedded任何颜色configuration文件,并且可以保存另外几个KB。

我build议使用JpegOptim,它是免费的,非常好,你可以指定质量,你想要的大小…和易于使用的命令行。

JpegOptim

我可以推荐这个近透明的:

 convert 'yourfile.png' ppm:- | jpeg-recompress -t 97 -q veryhigh -a -m smallfry -s -r -S disable - yourfile.jpg 

它使用jpeg-archive中的 imagemagick convertjpeg-recompress 压缩 。

两者都是开源的,可以在Windows,Mac和Linux上运行。 您可能需要调整上述选项以满足不同的质量要求。