desktop-ubuntu/_scripts/opti.sh

45 lines
953 B
Bash
Executable File

#!/usr/bin/zsh
# optimize png and jpg files
calc_reduction()
{
SIZE_PRE="$1"
SIZE_POST="$2"
PERECENT=` echo "scale=2; 100 - (100 * $SIZE_POST / $SIZE_PRE)" | bc `
RESULT="$(( $SIZE_PRE / 1000 ))-$(( ( $SIZE_PRE - $SIZE_POST ) / 1000 )) kb \
($PERECENT%)
"
echo " $RESULT"
}
for FILENAME in "$@"
do
FILETYPE=` file -b --mime-type "$FILENAME" `
echo "$FILENAME : $FILETYPE"
SIZE_PRE=` stat "$FILENAME" -c '%s' `
case "$FILETYPE" in
'image/png')
mogrify "$FILENAME"
pngcrush -nolimits -s "$FILENAME" "$FILENAME.tmp.png"
if [ -f "$FILENAME.tmp.png" ] \
&& [ -s "$FILENAME.tmp.png" ]
then
mv "$FILENAME.tmp.png" "$FILENAME"
else
rm "$FILENAME.tmp.png"
fi
;;
'image/jpeg')
jpegoptim "$FILENAME" -qsftp
;;
esac
SIZE_POST=` stat "$FILENAME" -c '%s' `
[ $SIZE_PRE -gt $SIZE_POST ] \
&& echo ` calc_reduction "$SIZE_PRE" "$SIZE_POST" `
done