Skip to content

Instantly share code, notes, and snippets.

@alexdunae
Created October 15, 2009 16:45
Show Gist options
  • Star 9 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save alexdunae/211082 to your computer and use it in GitHub Desktop.
Save alexdunae/211082 to your computer and use it in GitHub Desktop.
Image optimization with a home-rolled Smush.it
#!/bin/bash
#
# Home-rolled Smush.it, by Alex Dunae (http://dialect.ca).
#
# N.B. This script works for me; it may not work for you.
# Since it overwrites your images with the optimized version, you should
# backup your files before running this script and do a trial run before
# getting too excited. This is your disclaimer.
#
# Uses jpegtran (http://jpegclub.org/jpegtran/), part of libjpeg,
# and pngcrush (http://pmt.sourceforge.net/pngcrush/index.html).
# Set to WordPress upload directory or any folder with images.
base_path=~/wptrunk.dunae.ca/wp-content/uploads/
# Find files with a JPG extension recursively and process with jpegtran by
# - stripping comments
# - optimize image table
# - making the JPEG progressive
if type -P jpegtran &>/dev/null; then
echo 'Running jpegtran';
find $base_path -iname "*.jpg" -type f -exec jpegtran -outfile '{}' -copy none -optimize -progressive '{}' \;
else
echo 'jpegtran not found';
fi
# Find files with a PNG extension recursively and process with pngcrush
if type -P pngcrush &>/dev/null; then
echo 'Running pngcrush';
find $base_path -iname "*.png" -type f -exec pngcrush -reduce -brute -nofilecheck '{}' '{}' \;
else
echo 'pngcrush not found';
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment