module ChunkyPNG::Canvas::Operations

def extract_mask(mask_color, bg_color, tolerance = 5)

def extract_mask(mask_color, bg_color, tolerance = 5)
  base_pixels = []
  mask_pixels = []
  pixels.each do |pixel|
    if ChunkyPNG::Color.alpha_decomposable?(pixel, mask_color, bg_color, tolerance)
      mask_pixels << ChunkyPNG::Color.decompose_color(pixel, mask_color, bg_color, tolerance)
      base_pixels << bg_color
    else
      mask_pixels << (mask_color & 0xffffff00)
      base_pixels << pixel
    end
  end
  
  [ self.class.new(width, height, base_pixels), self.class.new(width, height, mask_pixels) ]
end