Class: ImageScience

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

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

#heightObject

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

#widthObject

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