class Quadtone::Separator

Attributes

luts[RW]

Public Class Methods

new(curve_set) click to toggle source
# File lib/quadtone/separator.rb, line 7
def initialize(curve_set)
      @luts = {}
      curve_set.curves.each do |curve|
            color_map = Magick::Image.new(curve.num_samples, 1) do
      self.colorspace = Magick::GRAYColorspace
              end
    color_map.pixel_interpolation_method = Magick::IntegerInterpolatePixel
              color_map.view(0, 0, curve.num_samples, 1) do |view|
      curve.samples.each_with_index do |sample, i|
        value = ((1 - sample.output.value) * 65535).to_i
        view[0][curve.num_samples - 1 - i] = Magick::Pixel.new(value, value, value)
            end
            end
    @luts[curve.channel] = color_map
            end
    end

Public Instance Methods

separate(image) click to toggle source
# File lib/quadtone/separator.rb, line 24
def separate(image)
  images = {}
  @luts.each do |channel, lut|
    image2 = image.copy.clut_channel(lut)
    image2['Label'] = channel.to_s.upcase
    images[channel] = image2
  end
  images
end