public
Created — forked from meleyal/optimize_images.rb

Simple png + jpg optimization script using optipng + jpegtran

  • Download Gist
optimize_images.rb
Ruby
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
#!/usr/bin/ruby
 
# Instructions
 
# - Install optipng + libjpeg (http://mxcl.github.com/homebrew/)
# - Put this file in a directory of images
# - Open in TextMate + run it (cmd+r)
 
# Config
 
dir = `pwd`.strip
optipng = `which optipng`
jpegtran = `which jpegtran`
png = ".png"
jpg = ".jpg"
suffix = "-opt"
replace = false
 
# Optimize PNGs
 
p "Optimizing .pngs in #{dir}"
 
Dir.glob(dir + "/**/*#{png}", File::FNM_CASEFOLD).each do |f|
 
d = File.dirname(f)
n = "#{File.basename(f,File.extname(f))}#{suffix}#{png}"
o = "#{d}/#{n}"
 
if replace
p "- #{f}"
`#{optipng} #{f}`
else
p "- #{f} > #{o}"
`#{optipng} #{f} -out #{o}`
end
 
end
 
# Optimize JPGs
 
p "Optimizing .jpgs in #{dir}"
 
Dir.glob(dir + "/**/*#{jpg}", File::FNM_CASEFOLD).each do |f|
d = File.dirname(f)
n = "#{File.basename(f,File.extname(f))}#{suffix}#{jpg}"
o = "#{d}/#{n}"
 
if replace
p "- #{f}"
`#{jpegtran} -optimize #{f}`
else
p "- #{f} > #{o}"
`#{jpegtran} -optimize -outfile #{o} #{f}`
end
end

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.