首页 文章

用于JPEG优化的工具? [关闭]

提问于
浏览
109

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

至少,我想要一个可以从JPG剥离元数据的工具 - 我注意到一个奇怪的情况,我试图从照片制作缩略图,并且不能使它小于34 kB . 在研究了更多之后,我发现EXIF数据仍然是图像的一部分,删除元数据后缩略图为3 kB .

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

我知道大多数节省来自JPEG质量参数,这是一个相当主观的衡量标准 . 我只是在寻找一种可以作为构建步骤运行的工具,并且无损地从图像中挤出几个字节 .

14 回答

  • 67

    我使用libjpeg进行无损操作 . 它包含一个命令行工具jpegtran,它可以做你想做的一切 . 使用命令行选项 -copy none 剥离所有元数据, -optimize 对霍夫曼压缩进行无损优化 . 您还可以使用 -progressive 将图像转换为渐进模式,但这可能会导致兼容性问题(是否有人了解更多信息?)

  • 3

    我写了一个GUI for all image optimization tools I could find,包括MozJPEGjpegoptim ,用于优化Huffman表,逐行扫描,以及(可选)删除不可见的元数据 .

    ImageOptim smushing it

    如果你没有Mac,我也有一个适用于任何平台的基本web interface .

  • 1

    [WINDOWS ONLY]

    RIOT(激进图像优化工具)这是我发现的最好的图像优化工具!

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

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

    如果要将其合并到自己的程序或java script / c程序中,还可以使用DLL .

    另一种选择是http://pnggauntlet.com/ PNGGAUNTLET需要永远,但它做得非常好 .

    [WINDOWS ONLY]

  • 12

    名为JPEGmini的新服务产生了令人难以置信的结果 . 遗憾的是它只在网上 . Edit :现在可用于Windows和Mac

  • 4

    尝试了上面的一些建议 - 我个人是在无损压缩之后 .

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

    使用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不是窗户 - 对我没有好处

    Riot(保持100%的质量)降低到63,416并且色度子采样设置为高,它降低到61,912 - 我不知道它是否是无损的,但我觉得它看起来比原来的要轻 .

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

  • 9

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

    似乎有一个名为Strip的选项可以帮助你:http://www.imagemagick.org/script/command-line-options.php#strip

  • 1

    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
    

    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
    
  • 11

    如果有人在看,我已经写了雅虎Smush.it的离线版本 . 它将无损地优化png,jpgs和gif(动画和静态):

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

  • 71

    您可以使用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

  • 4

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

    mogrify -strip image.jpg
    

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

    至于重新压缩JPEG,请不要 . JPEG开始时是有损耗的,因此任何形式的再压缩都只会损害图像质量 . 但是,如果您使用无损编码图像,则某些编码器比其他编码器做得更好 . 我注意到,由于complicated reasons,用Photoshop完成的JPEG一直看起来比使用ImageMagick编码时更好(尽管文件大小相同) . 此外(这与您相关),我知道至少Photoshop可以将JPEG保存为优化,这意味着它们会降低与您可能没有嵌入任何颜色配置文件的某些内容的兼容性,并且您可以节省另外几个KB .

  • 2

    我建议使用http://kraken.io这是超快的webapp,它将优化你的PNG和JPEG文件远远优于smush.it .

  • 7

    我建议使用JpegOptim,它是免费的,非常好,你可以指定质量,你想要的大小......并且易于在命令行中使用 .

    JpegOptim

  • 10

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

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

    它使用了来自jpeg-archiveimagemagickconvertjpeg-recompress .

    两者都是开源的,适用于Windows,Mac和Linux . 您可能需要调整上述选项以获得不同的质量预期 .

相关问题