Class: ImageScience
- Inherits:
-
Object
- Object
- ImageScience
- Defined in:
- lib/image_science.rb
Overview
Provides a clean and simple API to generate thumbnails using FreeImage as the underlying mechanism.
For more information or if you have build issues with FreeImage, see seattlerb.rubyforge.org/ImageScience.html
Constant Summary collapse
- VERSION =
'1.2.2'
Class Method Summary collapse
-
.with_image(path) ⇒ Object
The top-level image loader opens
path
and then yields the image. -
.with_image_from_memory(data) ⇒ Object
The top-level image loader, opens an image from the string
data
and then yields the image.
Instance Method Summary collapse
-
#cropped_thumbnail(size) ⇒ Object
Creates a square thumbnail of the image cropping the longest edge to match the shortest edge, resizes to
size
, and yields the new image. -
#height ⇒ Object
Returns the height of the image, in pixels.
-
#resize(width, height) ⇒ Object
Resizes the image to
width
andheight
using a cubic-bspline filter and yields the new image. -
#save(path) ⇒ Object
Saves the image out to
path
. -
#thumbnail(size) ⇒ Object
Creates a proportional thumbnail of the image scaled so its longest edge is resized to
size
and yields the new image. -
#width ⇒ Object
Returns the width of the image, in pixels.
-
#with_crop(left, top, right, bottom) ⇒ Object
Crops an image to
left
,top
,right
, andbottom
and then yields the new image.
Class Method Details
.with_image(path) ⇒ Object
The top-level image loader opens path
and then yields the image.
19 20 |
# File 'lib/image_science.rb', line 19 def self.with_image(path) # :yields: image end |
.with_image_from_memory(data) ⇒ Object
The top-level image loader, opens an image from the string data
and then yields the image.
25 26 |
# File 'lib/image_science.rb', line 25 def self.with_image_from_memory(data) # :yields: image end |
Instance Method Details
#cropped_thumbnail(size) ⇒ Object
Creates a square thumbnail of the image cropping the longest edge to match the shortest edge, resizes to size
, and yields the new image.
76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/image_science.rb', line 76 def cropped_thumbnail(size) # :yields: image w, h = width, height l, t, r, b, half = 0, 0, w, h, (w - h).abs / 2 l, r = half, half + h if w > h t, b = half, half + w if h > w with_crop(l, t, r, b) do |img| img.thumbnail(size) do |thumb| yield thumb end end end |
#height ⇒ Object
Returns the height of the image, in pixels.
43 |
# File 'lib/image_science.rb', line 43 def height; end |
#resize(width, height) ⇒ Object
Resizes the image to width
and height
using a cubic-bspline filter and yields the new image.
55 56 |
# File 'lib/image_science.rb', line 55 def resize(width, height) # :yields: image end |
#save(path) ⇒ Object
Saves the image out to path
. Changing the file extension will convert the file type to the appropriate format.
49 |
# File 'lib/image_science.rb', line 49 def save(path); end |
#thumbnail(size) ⇒ Object
Creates a proportional thumbnail of the image scaled so its longest edge is resized to size
and yields the new image.
62 63 64 65 66 67 68 69 |
# File 'lib/image_science.rb', line 62 def thumbnail(size) # :yields: image w, h = width, height scale = size.to_f / (w > h ? w : h) self.resize((w * scale).to_i, (h * scale).to_i) do |image| yield image end end |
#width ⇒ Object
Returns the width of the image, in pixels.
38 |
# File 'lib/image_science.rb', line 38 def width; end |
#with_crop(left, top, right, bottom) ⇒ Object
Crops an image to left
, top
, right
, and bottom
and then yields the new image.
32 33 |
# File 'lib/image_science.rb', line 32 def with_crop(left, top, right, bottom) # :yields: image end |