Module: Alchemy::Picture::Calculations
- Included in:
- Alchemy::Picture
- Defined in:
- app/models/alchemy/picture/calculations.rb
Instance Method Summary collapse
-
#can_be_cropped_to?(string, upsample = false) ⇒ Boolean
An Image smaller than dimensions can not be cropped to given size - unless upsample is true.
-
#image_size ⇒ Object
This function returns the :width and :height of the image file as a Hash.
-
#is_bigger_than?(dimensions) ⇒ Boolean
Returns true if both dimensions of the base image are bigger than the dimensions hash.
-
#is_smaller_than?(dimensions) ⇒ Boolean
Returns true is one dimension of the base image is smaller than the dimensions hash.
-
#sizes_from_string(string = "0x0") ⇒ Object
Given a string with an x, this function returns a Hash with point :width and :height.
Instance Method Details
#can_be_cropped_to?(string, upsample = false) ⇒ Boolean
An Image smaller than dimensions can not be cropped to given size - unless upsample is true.
9 10 11 12 13 |
# File 'app/models/alchemy/picture/calculations.rb', line 9 def can_be_cropped_to?(string, upsample = false) return true if upsample is_bigger_than? sizes_from_string(string) end |
#image_size ⇒ Object
This function returns the :width and :height of the image file as a Hash
47 48 49 50 51 52 |
# File 'app/models/alchemy/picture/calculations.rb', line 47 def image_size { width: image_file_width, height: image_file_height, } end |
#is_bigger_than?(dimensions) ⇒ Boolean
Returns true if both dimensions of the base image are bigger than the dimensions hash.
17 18 19 |
# File 'app/models/alchemy/picture/calculations.rb', line 17 def is_bigger_than?(dimensions) image_file_width > dimensions[:width] && image_file_height > dimensions[:height] end |
#is_smaller_than?(dimensions) ⇒ Boolean
Returns true is one dimension of the base image is smaller than the dimensions hash.
23 24 25 |
# File 'app/models/alchemy/picture/calculations.rb', line 23 def is_smaller_than?(dimensions) !is_bigger_than?(dimensions) end |
#sizes_from_string(string = "0x0") ⇒ Object
Given a string with an x, this function returns a Hash with point :width and :height.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'app/models/alchemy/picture/calculations.rb', line 30 def sizes_from_string(string = "0x0") string = "0x0" if string.nil? || string.empty? raise ArgumentError unless string =~ /(\d*x\d*)/ width, height = string.scan(/(\d*)x(\d*)/)[0].map(&:to_i) width = 0 if width.nil? height = 0 if height.nil? { width: width, height: height, } end |