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
ratio
must be on the following format:x
:y
wherex
andy
are integers. The order ofx
andz
does not matter and3:4
will 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
!z
wherez
is the orientation (v
for vertical, orh
for 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]