2013-10-03 36 views
46

我正在寻找通过命令行压缩图像(png和jpeg)的最佳工具。
谷歌搜索后,我发现trimage这是好的,因为它压缩png和jepeg,但在这种情况下压缩比很差。通过命令行的图像压缩工具

我碰到了jpeg-optimizer.com在线工具,它的工作方式比trimage更好。任何人都可以帮助找到合适的工具。

回答

32

我使用以下工具来执行无损图像压缩:

对于每一个节目,我创建两个捷径:

  1. 一个做了实际的压缩,并显示了这两个文件的文件大小
  2. 一个用压缩的文件替换原始文件(如果我满意,我会做向上箭头,带“m”的命令,然后按回车键)。

我把这个在我的.bashrc

# Image optimization tools 
png() { 
    pngcrush -brute "$1"{,.} && du -b "$1"{,.} 
} 
gif() { 
    gifsicle -O "$1" -o "$1." && du -b "$1"{,.} 
} 
jpeg() { 
    jpegtran "$1" > "$1." && du -b "$1"{,.} 
} 
# Just for easy access in history 
mpng() { 
    mv "$1"{.,} 
} 
mgif() { 
    newsize=$(wc -c <"$1.") 
    oldsize=$(wc -c <"$1") 
    if [ $oldsize -gt $newsize ] ; then 
     mv "$1"{.,} 
    else 
     rm "$1." 
    fi 
} 
mjpeg() { 
    mv "$1"{.,} 
} 

注:pngcrush -brute是非常详细。如果您对进度不感兴趣,请将输出重定向至/dev/null

+1

gifsicle才开始在新版本与'-O3'标志优化(上'apt'不可目前) - 参见[发布1.82.1( https://开头github上。com/pornel/giflossy/releases)(把你的'/ usr/bin/gifsicle'二进制文件替换成相应的文件)。我的关于gif优化的注意事项是[here](https://github.com/lmmx/devnotes/wiki/Gif-terminal-manipulation) –

+0

你的'jpegtran'命令似乎什么都不做,它会产生一个文件大小完全相同。为什么你没有指定选项? – Anonymous

+0

@jphollowed'jpegtran'默认优化。如果文件没有改变,那么jpegtran不能以无损的方式缩小文件大小。 –

9

如果你是在Linux上,尝试从imagemagick套房

mogrify工具,它是在命令行很方便。

例:

mogrify -resize 50% rose.jpg

mogrify -format jpg *.png 
+0

或尝试更快的分叉:http://www.graphicsmagick.org/ –