JPEG优化工具?[关闭]


114

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

至少,我想要一个可以从JPG中剥离元数据的工具-我注意到一种奇怪的情况,我试图从照片中制作缩略图,但缩略图大小不能小于34 kB。经过更多调查后,我发现EXIF数据仍然是图像的一部分,并且删除元数据后的缩略图为3 kB。

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

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


您是说在删除EXIF之前,经过优化的JPG中存在大约10KB的EXIF?我不知道里面有什么!
netrox

这是数码相机的整个EXIF块,包括有关这张照片的每个小细节(曝光,快门时间等)
chris166 2010年

@netrox chris166这些细节不会占用太多空间,预览(二进制数据)会占用很多空间。
Ariel 2012年

1
两篇有趣的比较文章列出了下面列出的实用程序:JPEG无损压缩工具比较,2014年6月JPEG优化工具基准测试,2013年2月
dma_k,2016年

@Ariel:ICC配置文件也倾向于占用很大空间。我已经看到了500KB以上的ICC配置文件二进制数据。
saurabheights '16

Answers:


68

我使用libjpeg进行无损操作。它包含一个命令行工具jpegtran,可以完成您想做的所有事情。使用命令行选项-copy none,将剥离所有元数据,并对-optimizeHuffmann压缩进行无损优化。您还可以使用将图像转换为渐进模式-progressive,但这可能会导致兼容性问题(有人对此有更多了解吗?)


5
哇,听起来很有希望。如果有人有兴趣,下载的Windows是gnuwin32.sourceforge.net/packages/jpeg.htm
chris166

我要去这个。在渐进模式下,它将背景图像从62 kB减少到49 kB。另一个图像(27 kB)减小到23 kB。节省15-20%,而不会损失质量!
chris166

2
渐进式基本上在所有情况下都可以正常工作,唯一的缺点是它使用更多的CPU进行解码(没有足够的附加功能)。
Ariel

1
对于小于9k的文件,渐进通常可能会大于基准
Collin Anderson

3
渐进式需要更多的内存来解码。可以传输常规的jpeg:您只需解码一小部分。要解码渐进式jpg,您需要一次将整个解压缩后的图像保存在内存中。
jcupitt

72

我写了一个对所有图片的优化工具,我能找到的GUI,包括MozJPEG以及jpegoptim能够优化霍夫曼表,进行扫描,和(可选)去除可见的元数据。

ImageOptim涂抹它

如果您没有Mac,那么我还有一个可在任何平台上运行的基本Web界面


5
优秀的!先生,您需要一个Flattr按钮。或加入Gittip。
Thilo 2012年

2
ImageOptim和ImageAlpha很棒!
2014年

很棒的工具-次要建议。为什么将JPEGoptim的质量限制为80%-大型背景图像通常会希望降至60%甚至更低。thx
niico 2014年

为什么要删除EXIF数据?:/
Adrien是

@AdrienBe 1.隐私。您可能不希望网络上的每个人都知道您的GPS位置。2.因为在从Photoshop保存的文件中,文件中可能嵌入了兆字节的XML垃圾。
Kornel

12

[仅限Windows]

RIOT(径向图像优化工具)这是我发现的最大的图像优化工具!

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

通过子采样,您可以轻松地将10MB的图像减小到800KB。它支持PNG,GIF和JPEG。它甚至集成到上下文菜单中,因此您可以直接在此处发送图片。允许您旋转,调整大小,压缩到指定的KB等。还具有GIMP和IrfanView等插件。

如果要将DLL合并到自己的程序或java脚本/ c ++程序中,也可以使用DLL。

另一个替代方法是http://pnggauntlet.com/ PNGGAUNTLET可以永久使用,但是做得很好。

[仅限Windows]


7
警告: RIOT看起来不错,但无需询问您即可安装TuneUp和狗屎。..我将其归类为恶意软件。
Daniel W.

1
@DanFromGermany是正确的。请参阅此处的评论:download.cnet.com/RIOT/3000-12511_4-10911908.html#summaryList
RNickMcCandless 2014年

1
直到最近才这样做。
2014年

恶意软件警报!Chrome下载管理器警告RIOT是恶意软件
ruhong 2014年

8
仅供参考:RIOT有一个可移植的.zip文件,其中不包含任何恶意软件或任何安装程序。只需向下滚动他们的下载页面。luci.criosweb.ro/riot/download
Goyuix

12

一项名为JPEGmini的新服务产生了令人难以置信的结果。遗憾的是,它仅在线上。 编辑:现在可用于Windows和Mac


我们现在有一个Mac应用程序可用(公开:我在开发团队中)
DanJ 2012年

4
我不知道您是否是作者,但该应用程序误导了用户。如果在其“微型”图像上运行jpegquality.c以检测压缩量,然后使用具有相同质量的imagemagick压缩原始文档=>您将获得相同的结果,两个图像中的JPEG伪像也相同。Imagemagick可能是开源的,但是使用它并不可行,然后声称您开发了一种新的压缩技术
很好的屁股2014年

@onetrickpony:我与他们没有任何关系。
Eduardo Molteni 2014年

@niceass您如何知道JPEGmini正在使用ImageMagick代码?知道质量因数与IM的输出相同是不能证明的。我的猜测是,他们可能会通过减少一点过滤就以降低质量因数的方式重新压缩图像,并使用某种质量度量标准来决定何时停止。
koan

我在以前从ImageMagick导出的图像上运行了最新的JPEGmini,据报道JPEGmini已经在其上运行-我不记得这样做了。运行jpegtran -optimize-在同一图像上不复制任何内容,大小减小12 KB。
koan

10

尝试了以上一些建议-我个人经历了无损压缩。

我的样本图像的原始大小为67737字节。

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

smush.py选项看起来很有希望,但是安装太复杂了,无法快速进行

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

jpegmini并非无损,但我无法分辨出差异(降至22,172)

plinth的Altrasoft jpegstripper应用程序无法在我的Windows 7上运行

jpegoptim不是Windows-对我没有好处

Riot(保持100%的质量)将其降低到63,416,并将色度二次采样设置为高,将其降低到61,912-我不知道这是否是无损的,而且我认为它比原始的更轻。

因此,我的决定是yahoo smushit,如果它必须无损


如果您很固执,jpegrescan可以在Windows上运行。它可以像魔术一样减少大小(5-15%,质量没有损失),这非常了不起,因为它只是对渐进式扫描排序AFAIK进行了重新排序(您可能会注意到,在其他程序中相同,文件有时在Photoshop中变小了) (如果没有明显原因,则选择不同的扫描次数)。而且,它是由制作x264的人之一制作的,他在压缩领域是个天才。
卡米洛·马丁


7

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

在此论坛中也发现了脚本代码的重用(所有文件都被替换到位):

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

图像优化

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


4

您可以使用jpegoptim,它将默认无损地优化jpeg文件。该--strip-all选项将删除所有额外的嵌入式信息。您还可以通过--max开关指定有损模式,当您以非常高的质量设置保存图像时,此模式很有用,例如,这是不必要的。网页内容。

您获得了与jpegtran相似的优化(请参见OutOfMemory的答案),但是jpegoptim无法保存为渐进式jpeg。


4

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

这适用于OS X或Linux系统上的自制软件,其中已安装了jpegrescan,jpegtran,optipng,gifsicle等工具。

https://github.com/ajslater/picopt


是否有Windows版本?
starbeamrainbowlabs 2015年

如果您可以将其posix依赖项安装在cygwin之类的Windows环境中,则可能会这样做。不过,您将是第一个测试它的人。
AJ Slater

3

我也推荐ImageMagick。它具有用于删除EXIF元数据的命令行选项

mogrify -strip image.jpg

还有许多其他工具可以执行相同的操作。

就重新压缩JPEG而言,请不要这样做。JPEG首先是有损的,因此任何形式的重新压缩只会损害图像质量。但是,如果您对图像进行无损编码,则某些编码器的效果会更好。我注意到,由于复杂的原因,用Photoshop完成的JPEG始终比使用ImageMagick编码时更好(尽管文件大小相同)。此外(这与您有关),我知道至少Photoshop可以将JPEG保存为优化格式,这意味着它们与某些您可能不希望节省几KB的内容的兼容性下降。另外,请确保没有嵌入任何颜色配置文件,并且您可能还可以保存另外几KB。


有趣。我一直认为90%的质量在所有图像工具上都是一样的。Photoshop是唯一使用优化的DCT系数的工具吗?
chris166

1
尽管我尝试在Photoshop和Imagemagick中保存相同的图像之前,90%的各种工具都是相同的。我发现在Photoshop中,“保存为Web”中大约70%的文件与在Imagemagick中的92%大约相同,但是Photoshop文件的质量明显更好。我不知道其他工具是如何做到的。
大卫·约翰斯通

您知道如何使用PHP版本的ImageMagick执行EXIF元数据剥离吗?
桑尼2010年

@Sonny并非如此,但您可能对此功能感兴趣:php.net/manual/en/function.imagick-stripimage.php
David Johnstone 2010年

谢谢大卫,这就是我最终发现的。这是我的主题:stackoverflow.com/questions/2540068
Sonny 2010年


2

我建议使用JpegOptim,它是免费的,而且非常不错,您可以指定质量,所需的大小,而且易于在命令行中使用。

JpegOptim


1

我可以推荐这种方式来提高透明度:

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

它采用的ImageMagickconvertjpeg-recompressJPEG归档

两者都是开源的,并且可以在Windows,Mac和Linux上运行。您可能需要调整上面的选项,以获得不同的质量期望。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.