This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
smusher /
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Sat Jan 24 06:14:39 -0800 2009 | |
| |
README.markdown | Sun Jan 25 01:12:19 -0800 2009 | |
| |
Rakefile | Mon Jan 26 09:49:26 -0800 2009 | |
| |
bin/ | Sun Jan 25 01:12:19 -0800 2009 | |
| |
lib/ | Mon Jan 26 14:31:22 -0800 2009 | |
| |
smusher.gemspec | Mon Jan 26 09:49:26 -0800 2009 | |
| |
spec/ | Mon Jan 26 09:49:26 -0800 2009 |
README.markdown
Problem
- Images are too large because they are not optimized
- Users & your bandwidth is wasted for useless metadata
- local image optimization requires tons of programs / libaries / knowledge
Solution
- LOSSLESS size reduction (10-97% size reduction) in the cloud
- optmizes all images(jpg+png) from a given folder
Install
install ruby + rubygems + curl
sudo gem install grosser-smusher --source http://gems.github.com/
Usage
smusher /apps/x/public/images # optimize all jpg/png images, NOT gifs
smusher /apps/x/public/images/x.png # optimize a single image
smusher /apps/x/public/images/x.gif # !!optimize to smaller png, rename it yourself!!
Protection
Smusher makes .backup copies of any image before optimizing.
Any image that returns a failure code, is larger than before,
or is empty will be reverted.
Example
smusher /apps/ts/public/images
sushing /apps/rs/public/images/social/facebook_icon.png
2887 -> 132 = 4%
sushing /apps/rs/public/images/social/myspace_icon.png
3136 -> 282 = 8%
sushing /apps/rs/public/images/dvd/dvd_1.png
5045 -> 4 = 0%
reverted!
...
TODO
- use rest-client rather than curl
- windows support?
Author
Michael Grosser
grosser.michael@gmail.com
Hereby placed under public domain, do what you want, just do not hold me accountable...







