aspect_ratio
Image aspect ratio utilities.
The Ruby port of node-aspectratio npm module.
Install
Install globally
gem install aspect_ratio
OR
Install locally with Bundler
Please include
gem 'aspect_ratio'
in your Gemfile then bundle install
Test
ruby test/aspect_ratio_test.rb
API
crop(integer width, integer height, string ratio)
Apply a fixed aspect ratio crop without distoring the image aspect ratio.
-
integer
width- original image width -
integer
height- original image height -
string
ratio- new image ratio
The
ratiomust be on the following format:x:ywherexandyare integers. The order ofxandzdoes not matter and3:4will be treated as4:3.
By default #crop() will match the orientation of the original image unless a forced orientation is given on the follwing format:
x:y!zwherezis the orientation (vfor vertical, orhfor horizontal).
Return
This will return an Array of four values:
-
integer
x- top lef x coordinate -
integer
y- top lef y coordinate -
integer
width- new image width -
integer
height- new image height
Example
require 'aspect_ratio'
AspectRatio.crop(2048, 768, '4:3');
// [512, 768, 1024, 768]resize(integer x, integer y, integer maxX, integer maxY, boolean enlarge)
Get resized height and width of an image while perserving the aspect ratio of the image.
-
integer
x- original image width -
integer
y- original image height -
integer
maxX- max image width -
integer
maxY- max image height -
boolean
enlarge- enlarge when original is smaller than the max - default true
Return
Returns an Array of the resized x and y values:
-
integer
x- resized image width -
integer
y- resized image height
Example
require 'aspect_ratio'
AspectRatio.resize(2048, 768, 640, 640);
// [640, 240]