#!/usr/local/bin/ruby -w require 'RMagick' # Demonstrate the Draw#rotation= method by producing # an animated MIFF file showing a rotating text string. text = Magick::Draw.new text.pointsize = 28 text.font_weight = Magick::BoldWeight text.font_style = Magick::ItalicStyle text.gravity = Magick::CenterGravity # Let's make it interesting. Composite the # rotated text over a gradient fill background. fill = Magick::GradientFill.new(100,100,100,100,"yellow","red") bg = Magick::Image.new(200, 200, fill) # Since antialiasing text on a transparent background doesn't # look good, write the text on an opaque yellow background. fg = Magick::Image.new(bg.columns, bg.rows) { self.background_color = "yellow" } # Here's where we'll collect the individual frames. animation = Magick::ImageList.new 0.step(345,15) { |degrees| frame = fg.copy text.annotate(frame, 0,0,0,0, "Rotating Text") { self.rotation = degrees } # Composite the text over the gradient filled background frame. animation << bg.composite(frame, Magick::CenterGravity, Magick::DisplaceCompositeOp) } animation.delay = 8 # ignored if ImageMagick not configured with ZLIB animation.compression = Magick::ZipCompression #animation.animate animation.write("rotated_text.miff") exit