lib/attach_it/storage/storage.rb in mm-attach-it-0.1.2 vs lib/attach_it/storage/storage.rb in mm-attach-it-0.1.3

- old
+ new

@@ -1,10 +1,30 @@ require 'RMagick' class Storage + def transform(style_value = nil, filename = nil) + style_value.gsub!(/\s+/, '') + + if style_value.match(/^(\d+)x(\d+)\#$/) + crop($1.to_i, $2.to_i, filename) + else + resize(style_value, filename) + end + end + + private def resize(style_value = nil, filename = nil) new_image = Magick::Image.read(filename).first new_image.change_geometry!(style_value) { |cols, rows, img| img.resize!(cols, rows) } + new_image + end + + def crop(new_width = nil, new_height = nil, filename = nil) + new_image = Magick::Image.read(filename).first + width = new_image.columns + height = new_image.rows + new_image.crop!(width/2 - new_width/2, height/2 - new_height/2, new_width, new_height) + new_image end end