Image Compression tools via command line [closed]
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.
Solution 1:
I'm using the following tools to perform lossless image compression:
pngcrush
gifsicle
jpegtran
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.
Solution 2:
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
Solution 3:
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