Sha256: 72e1bf93aff9a520f6ec02f6fdeea91d62faea1a5de19261fe0c5b70b7b9ea22
Contents?: true
Size: 1.24 KB
Versions: 2
Compression:
Stored size: 1.24 KB
Contents
require 'piet/carrierwave_extension' module Piet class << self VALID_EXTS = %w{ png gif jpg jpeg } def optimize(path, opts= {} ) output = optimize_for(path, opts) puts output if opts[:verbose] true end def pngquant(path, opts = {}) output = pngquant_for(path, opts) puts output if opts[:verbose] true end private def optimize_for(path, opts) case extension(path) when "png", "gif" then optimize_png(path, opts) when "jpg", "jpeg" then optimize_jpg(path, opts) end end def extension(path) path.split(".").last.downcase end def optimize_png(path, opts) vo = opts[:verbose] ? "-v" : "-quiet" `optipng -o7 #{vo} #{path}` end def optimize_jpg(path, opts) vo = opts[:verbose] ? "-v" : "-q" `jpegoptim -f --strip-all #{vo} #{path}` end def pngquant_for(path, opts) opts.merge!({:force => true}) vo = if opts.any? opts.keys.map{|x| "-#{x}"}.join(" ") else "" end out = `pngquant #{vo} 256 #{path}` blobs = path.split(".") new_path = "#{blobs[0..-2].join(".")}-fs8.#{blobs[-1]}" `mv #{new_path} #{path}` out end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
piet-0.1.2 | lib/piet.rb |
piet-0.1.1 | lib/piet.rb |