I'm searching best tool to compress images (png and jpeg) via command line.
After googling I found trimage which is good as it compresses both png and jepeg, but compression ratio is very poor in this case.
I came across jpeg-optimizer.com online tool which does the job way better than trimage. Can any one help to find the right tool for this.
I'm using the following tools to perform lossless image compression:
For each of the programs, I've created two shortcuts:
- One that does the actual compression, and shows the file size of both files
- One that replaces the original file with the compressed one (If I'm satisfied, I'll do arrow-up, prefix my previous command with a "m", and press enter).
I've put this in my .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"{.,}
}
Note: pngcrush -brute
is very verbose. Redirect the output to /dev/null
if you're not interested in the progress.
Lossy PNG: pngquant2
Lossless PNG: AdvPNG (good and fast) or ZopfliPNG (slow, but best)
Lossless JPG: mozjpeg's jpegtran or jpegrescan
Lossy JPG: mozjpeg's cjpeg (try online) or imgmin
If you're running macOS: ImageOptim CLI
If you are on Linux, try mogrify tool from the imagemagick suite
It is quite handy on command line.
Ex :
mogrify -resize 50% rose.jpg
mogrify -format jpg *.png
来源:https://stackoverflow.com/questions/19153122/image-compression-tools-via-command-line