Class: Spraycan::Rmagick
- Inherits:
-
Object
- Object
- Spraycan::Rmagick
- Defined in:
- lib/spraycan/rmagick.rb
Constant Summary collapse
- VALID_OUTPUT_FORMATS =
%w(JPEG PNG JPG GIF)
Instance Method Summary collapse
- #crop(image, tl_x, tl_y, br_x, br_y) ⇒ Object
- #crop_resize(image, width, height = nil) ⇒ Object
- #exif_data(image) ⇒ Object
-
#previews(image, previews) ⇒ Object
previews => { :very_small => { :dimensions => 40, :target => “/tmp/spraycan_spec/v_small.thumbnail.image.png” },.
- #resize(image, width, height = nil) ⇒ Object
- #resized_crop_mask(image, crop, size) ⇒ Object
Instance Method Details
#crop(image, tl_x, tl_y, br_x, br_y) ⇒ Object
16 17 18 19 20 |
# File 'lib/spraycan/rmagick.rb', line 16 def crop(image, tl_x, tl_y, br_x, br_y) process image do crop!(tl_x, tl_y, br_x, br_y) end end |
#crop_resize(image, width, height = nil) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/spraycan/rmagick.rb', line 22 def crop_resize(image, width, height = nil) width, height = calculate_dimensions(image, width) unless height process image do crop_resized!(width, height) end end |
#exif_data(image) ⇒ Object
45 46 47 48 |
# File 'lib/spraycan/rmagick.rb', line 45 def exif_data(image) data = Magick::Image.from_blob(image).first.get_exif_by_entry data.inject({}) { |m, exif_entry| m[exif_entry[0]] = exif_entry[1]; m } end |
#previews(image, previews) ⇒ Object
previews => { :very_small => { :dimensions => 40, :target => “/tmp/spraycan_spec/v_small.thumbnail.image.png” },
31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/spraycan/rmagick.rb', line 31 def previews(image, previews) previews.each_value do |preview| if preview.has_key?(:dimensions) preview.merge!(crop_resize(image, preview.delete(:dimensions))) else preview.merge!(process(image)) end end previews.tap do |obj| obj[:original] = dimensions(image) end end |
#resize(image, width, height = nil) ⇒ Object
8 9 10 11 12 13 14 |
# File 'lib/spraycan/rmagick.rb', line 8 def resize(image, width, height = nil) width, height = calculate_dimensions(image, width) unless height process(image) do change_geometry("#{width}x#{height}") { |cols, rows, image| image.resize!(cols, rows) } end end |
#resized_crop_mask(image, crop, size) ⇒ Object
50 51 52 53 54 55 |
# File 'lib/spraycan/rmagick.rb', line 50 def resized_crop_mask(image, crop, size) process(image) do resize!(size[:width], size[:height]) if size[:width] > 0 && size[:height] > 0 crop!(crop[:x], crop[:y], crop[:width], crop[:height], true) # pass true to clear offset info end end |