#!/usr/bin/ruby1.8 -w
require 'RMagick'
# Demonstrate the Image#channel_threshold method
img = Magick::Image.read('images/Flower_Hat.jpg').first
# Make the "before" image
imgs = Magick::ImageList.new
imgs << img.copy
imgs.cur_image['Label'] = "\n\n"
imgs << img.copy
imgs.cur_image['Label'] = "\n\n\n"
montage = imgs.montage {
self.background_color = "white"
self.geometry = "#{img.columns}x#{img.rows}+10+10"
self.tile = "2x1"
}
montage.border!(1,1,"black")
montage.write("channel_threshold_before.jpg")
# Now the "after" image.
# Channel threshold values should be a %-age of MaxRGB
# Let the opacity threshold default to MaxRGB.
img2 = img.channel_threshold(Magick::MaxRGB*0.75,
Magick::MaxRGB*0.50)
img2['Label'] = "channel_threshold(\nMagick::MaxRGB*0.75,\nMagick::MaxRGB*0.50)"
img3 = img.channel_threshold(Magick::MaxRGB*0.50,
Magick::MaxRGB*0.25,
Magick::MaxRGB*0.25)
img3['Label'] = 'channel_threshold(\nMagick::MaxRGB*0.50,\nMagick::MaxRGB*0.25,\nMagick::MaxRGB*0.25)'
# Montage the two sample images
imgs = Magick::ImageList.new
imgs << img2 << img3
montage = imgs.montage {
self.background_color = "white"
self.geometry = "#{img.columns}x#{img.rows}+10+10"
self.tile = "2x1"
}
# Give the montage a black border
montage.border!(1,1,'black')
montage.write('channel_threshold_after.jpg')
exit