#! /usr/local/bin/ruby -w require 'RMagick' # Demonstrate the Image#stegano method. # Create a small watermark from the Snake image by # shrinking it and converting it to B&W. watermark = Magick::Image.read('images/Snake.wmf').first watermark = watermark.scale(64.0/watermark.rows) watermark = watermark.quantize(256, Magick::GRAYColorspace) wmrows = watermark.rows wmcols = watermark.columns # Read the image in which we'll hide the watermark. jj = Magick::Image.read('images/Jean_Jacket.jpg').first jj = jj.scale(250.0/jj.rows) # Embed the watermark starting at offset 91. puts 'Embedding watermark...' stegano = jj.stegano(watermark, 91) # Write the watermarked image in PNG format. Note that # the format must be lossless - Image#stegano doesn't work # with lossy formats like JPEG. stegano.write('jj.png') # Read the image and retrieve the watermark. The size # attribute describes the size and offset of the watermark. puts 'Retrieving watermark. This may take a few seconds...' stegano = Magick::Image.read('stegano:jj.png') { self.size = "#{wmcols}x#{wmrows}+91" } # We don't need this any more. File.delete('jj.png') #stegano[0].display stegano[0].write('stegano.gif') exit