Module: ImageManipulation
- Extended by:
- ActiveSupport::Concern
- Included in:
- StorageImageProcessing
- Defined in:
- app/models/concerns/image_manipulation.rb
Instance Method Summary collapse
-
#crop_image(src, dest, x0 = 0, y0 = 0, w = 100, h = 100, scale = 1) ⇒ Object
IMAGE CROP.
-
#landscape?(image) ⇒ Boolean
HELPERS.
- #portrait?(image) ⇒ Boolean
- #resize_to_larger_side(image, side_size) ⇒ Object
- #resize_to_larger_side!(src, side_size) ⇒ Object
- #rotate_attached_image(angle) ⇒ Object
-
#rotate_image(src, dest, angle) ⇒ Object
Fu.
- #rotate_left ⇒ Object
- #rotate_right ⇒ Object
Instance Method Details
#crop_image(src, dest, x0 = 0, y0 = 0, w = 100, h = 100, scale = 1) ⇒ Object
IMAGE CROP
51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'app/models/concerns/image_manipulation.rb', line 51 def crop_image src, dest, x0 = 0, y0 = 0, w = 100, h = 100, scale = 1 image = MiniMagick::Image.open src x_shift = (x0.to_f * scale).to_i y_shift = (y0.to_f * scale).to_i w = (w.to_f * scale).to_i h = (h.to_f * scale).to_i image.crop "#{w}x#{h}+#{x_shift}+#{y_shift}" image.write dest end |
#landscape?(image) ⇒ Boolean
HELPERS
5 6 7 |
# File 'app/models/concerns/image_manipulation.rb', line 5 def landscape? image image[:width] > image[:height] end |
#portrait?(image) ⇒ Boolean
9 10 11 |
# File 'app/models/concerns/image_manipulation.rb', line 9 def portrait? image image[:width] < image[:height] end |
#resize_to_larger_side(image, side_size) ⇒ Object
34 35 36 37 38 39 40 41 42 |
# File 'app/models/concerns/image_manipulation.rb', line 34 def resize_to_larger_side image, side_size if image[:width] > side_size.to_i landscape?(image) ? image.resize("#{side_size}x") : image.resize("x#{side_size}") end image end |
#resize_to_larger_side!(src, side_size) ⇒ Object
44 45 46 47 48 |
# File 'app/models/concerns/image_manipulation.rb', line 44 def resize_to_larger_side! src, side_size image = MiniMagick::Image.open(src) image = resize_to_larger_side(image, side_size) image.write src end |
#rotate_attached_image(angle) ⇒ Object
20 21 22 23 24 |
# File 'app/models/concerns/image_manipulation.rb', line 20 def rotate_attached_image angle src = path rotate_image(src,src,angle) refresh_base_image end |
#rotate_image(src, dest, angle) ⇒ Object
Fu
14 15 16 17 18 |
# File 'app/models/concerns/image_manipulation.rb', line 14 def rotate_image src, dest, angle img = MiniMagick::Image.open(src) img.rotate(angle) img.write(dest) end |
#rotate_left ⇒ Object
26 27 28 |
# File 'app/models/concerns/image_manipulation.rb', line 26 def rotate_left rotate_attached_image "-90" end |
#rotate_right ⇒ Object
30 31 32 |
# File 'app/models/concerns/image_manipulation.rb', line 30 def rotate_right rotate_attached_image "90" end |