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.