Ruby/CLI: Automatic lossless reduction of all your images
Ruby
Latest commit 58a7221 Oct 8, 2012 @grosser Merge pull request #12 from johnrees/patch-1
Update Readme.md
Permalink
Failed to load latest commit information.
bin
lib make url overwriteable + found the new url + document how to find the… Nov 19, 2011
spec notify users about renamed files Mar 15, 2011
.gitignore now singleton + cmd-line interface... Jan 24, 2009
Gemfile make compatible to new http-client version Apr 22, 2011
Gemfile.lock make compatible to new http-client version Apr 22, 2011
Rakefile gemify Mar 15, 2011
Readme.md Update Readme.md Oct 8, 2012
VERSION Version bump to 0.4.9 Nov 19, 2011
smusher.gemspec Regenerate gemspec for version 0.4.9 Nov 19, 2011

Readme.md

LOSSLESS image size reduction for jpg, png and gif in the cloud

  • no image libraries needed, everything done in the interwebs
  • less size (up to a 97% saving) = faster downloads = less bandwidth + happy users

Install

install ruby + rubygems
sudo gem install smusher

Usage

Optimize a single image or a whole folder:

smusher /apps/x/public/images [options]
smusher /apps/x/public/images/x.png [options]
smusher /apps/x/public/images/*.png [options]

Options: -q, --quiet no output -c, --convert-gifs convert gifs to PNGs --service PunyPng use PunyPng for image optimizing, instead of SmushIt -v, --version display current version

Example

smusher /apps/ts/public/images
  smushing /apps/rs/public/images/social/facebook_icon.png
  2887 -> 132                              = 4%

  smushing /apps/rs/public/images/social/myspace_icon.png
  3136 -> 282                              = 8%

  smushing /apps/rs/public/images/dvd/dvd_1.png
  5045 -> 4                                = 0%
  reverted!
  ...

PunyPng - usage limit

The default Smusher::PunyPng.api_key is used by all users and could already be full when you try to smush some images.

Create a .puny_png_api_key in your home directory with your own api key from PunyPng.

Protection

Any image that returns a failure code, is larger than before, or is empty will not be saved.

TODO

  • only optimize 'new' images -> save time when doing on already optimized folder

JS + CSS

reduce images and minify css + js -> try reduce.

Authors

Contributors

Michael Grosser
michael@grosser.it
Hereby placed under public domain, do what you want, just do not hold me accountable...