#!/usr/bin/ruby -w require 'RMagick' # Demonstrate the Image#chop method lighthouse = Magick::Image.read('images/Lighthouse.jpg')[0] lighthouse = lighthouse.scale(250.0/lighthouse.rows) # Chop the specified rectangle out of the lighthouse. chopped = lighthouse.chop(0, 0, lighthouse.columns/2, lighthouse.rows/2) # Go back to the original and draw a semi-transparent rectangle # corresponding to the chopped rectangle. rect = Magick::Draw.new rect.stroke('transparent') rect.fill_opacity(0.40) rect.rectangle(0,0,(lighthouse.columns/2)-1, lighthouse.rows/2) rect.draw(lighthouse) # Create a image to use as a background for # the "before & after" images. bg = Magick::Image.new(lighthouse.columns+chopped.columns, lighthouse.rows) { self.background_color = 'gray50' } # Composite the "before" image on the left side # and the "after" (chopped) image on the right. bg = bg.composite(lighthouse, Magick::WestGravity, Magick::OverCompositeOp) bg = bg.composite(chopped, Magick::SouthEastGravity, Magick::OverCompositeOp) # Draw a line between the before & after images. line = Magick::Draw.new line.line(lighthouse.columns, 0, lighthouse.columns, bg.rows-1) line.draw(bg) bg.write('chop.jpg') #bg.display exit