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 http://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
pathand then yields the image. -
.with_image_from_memory(data) ⇒ Object
The top-level image loader, opens an image from the string
dataand 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
widthandheightusing 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
sizeand 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, andbottomand 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 |