1、简介

PEGOPTIM是CDN供应商Akamai开发的一个图片人优化的开源小工具。它有较好的图片压缩效果(压缩比、图片质量), 比PHP的GD库算法要好。

2、下载地址

GitHub地址:https://github.com/tjko/jpegoptim

下载地址:http://www.kokkonen.net/tjko/projects.html

3、liunx下安装
$ wget http://www.kokkonen.net/tjko/src/jpegoptim-1.4.4.tar.gz
$ tar -xzf jpegoptim-1.4.4.tar.gz
$ cd jpegoptim-1.4.4
$ /configure --prefix=/opt/runtime/jpegoptim
$ make&make strip&make install

//如果出错先执行yum install -y libjpeg*
4、测试
$ /opt/runtime/jpegoptim/bin/jpegoptim -V
5、使用参数
$ /opt/runtime/jpegoptim/bin/jpegoptim --strip-all --all-progressive -o -f --max=<压缩比>

压缩比可配置,现在使用80 (80%)

自由互联热门推荐:PDF电子发票识别软件,一键识别电子发票并导入到Excel中!10大顶级数据挖掘软件!人工智能的十大作用!

命令参考:
/opt/runtime/jpegoptim/bin/jpegoptim --dest=/opt/apps/awyun/backend/public/images/background/test/ --strip-all --max=80 -f -t  --all-progressive  test.jpg
// --dest=指定压缩后放到哪个目录,前提文件夹存在,否则报错, 不加此选项会覆盖原来文件,还没找到放在当前路径重命名文件的方法呢
// 具体参数看下边的文档解释
6、手册

英文版地址:http://www.kokkonen.net/tjko/src/man/jpegoptim.txt

大概翻译:

JPEGOPTIM(1)                                                      JPEGOPTIM(1)

名称
       jpegoptim - 用于优化/压缩JPEG/JFIF文件。
概要
       jpegoptim [ options ] [ filenames ]
描述
       pegoptim用于优化/压缩jpeg文件。项目支持无损优化,这是基于对Huffman表的优化。所谓的“有损”优化除了优化之外。可以指定图像质量的上限。
选项
       选项可以是传统的POSIX一个字母选项,也可以是。GNU风格长选项。 POSIX风格选项以一个“-”开头,而GNU的长选项以''--'开头。
       
jpegoptim提供的选项如下:
       
      -d<path>, --dest=<path>
      //设置备选目标目录,以便保存优化。文件(默认是覆盖原始文件)。
      //请注意,不变的文件不会被添加到目标目录。
      //这意味着如果源文件不能被压缩,就不会有文件。在目标路径中创建。

      -f, --force
      //强制优化,即使结果大于。原始文件。

      -h, --help
     //显示简短的使用信息并退出。
      -m<quality>, --max=<quality>
      //设置最大图像质量因子(禁用无损优化)。mization模式是默认启用的。
      //设置这个选项会降低使用更高版本保存的源文件的质量。而那些已经有较低质量的文件。设置将使用无损优化进行压缩。

      -n, --noaction
      //不要真的优化文件,只需打印结果。

      -S<size>, --size=<size>
      //尝试优化文件大小(禁用了无损优化mizaiont模式)。目标尺寸指定KB(1 N)或百分比(1% - 99%)的原始文件的大小。

      -T<treshold>, --threshold=<treshold>
      //如果压缩增益低于阈值(%),则保持文件不变。传输安全有效值为:0 - 100

      -o, --overwrite
      //覆盖目标文件,即使它存在(使用D选项)。

      -p, --preserve
      //保存文件修改时间。

      -q, --quiet
      //安静模式。

      -t, --totals
      //处理完所有文件后打印总计。

      -v, --verbose
      //启用详细模式(积极聊天).

      --all-normal
      //强制所有输出文件为非逐行扫描。可以用来转换所有输入文件的渐进式JPEG当使用--force选项。

      --all-progressive
      //强制所有输出文件都是渐进的。可以将所有输入文件正常(非连续)当使用--force选项的JPEG文件。

      --strip-all
      //去除所有(Comment  & Exif)从输出文件删除标记。(注!默认情况下只有Comment  & Exif标记保存,其他一切都是丢弃)

      --strip-com
      //从输出文件中删除Comment(COM)标记。

      --strip-exif
      //从输出文件中删除标记。

      --strip-iptc
      //从输出文件中删除IPTC标记。
    
      --strip-icc
      //将ICC配置文件从输出文件中删除。

Bugs:

      当使用size选项时,结果文件并不总是精确的请求大小。解决方法是重新运行jpegoptim在同一文件又往往会导致文件大小接近目标。