Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Ruby/CLI: Automatic lossless reduction of all your images
Branch: master
Pull request Compare This branch is 8 commits behind grosser:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
lib
spec
.gitignore
Gemfile
Gemfile.lock
Rakefile
Readme.md
VERSION
smusher.gemspec

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 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...

Something went wrong with that request. Please try again.