module PhotoMosaic::MiniMagickIo::ClassMethods

Public Instance Methods

image_cache() click to toggle source
# File lib/photo_mosaic/mini_magick_io.rb, line 36
def image_cache
  @image_cache ||= {}
end
import(image_path) click to toggle source
# File lib/photo_mosaic/mini_magick_io.rb, line 11
def import(image_path)
  image_paths = Array(image_path)
  images = Enumerator.new(image_paths.size) do |yielder|
    image_paths.each do |path|
      image = read(path)
      if image_paths.size > 1
        broadcast(:image_import, {broadcaster: self, paths: image_paths, current_path: path})
      end
      yielder << image
    end
  end
  images.size > 1 ? images : images.first
end
read(path) click to toggle source
# File lib/photo_mosaic/mini_magick_io.rb, line 25
def read(path)
  image = image_cache[path]
  if image.nil?
    foreign_image = MiniMagick::Image.open(path)
    pixels = foreign_image.get_pixels
    image = new(pixels, foreign_image)
    image_cache[path] = image
  end
  image
end