# compose_mask.rb

    require 'RMagick'

    background = Magick::Image.read('images/Flower_Hat.jpg').first
    source = Magick::Image.read('pattern:checkerboard') {self.size = "#{background.columns}x#{background.rows}"}.first
    mask = Magick::Image.new(background.columns, background.rows) {self.background_color = "black"}

    # Make a mask
    gc = Magick::Draw.new
    gc.annotate(mask, 0, 0, 0, 0, "Ruby") do
      gc.gravity = Magick::CenterGravity
      gc.pointsize = 100
      gc.rotation = 90
      gc.font_weight = Magick::BoldWeight
      gc.fill = "white"
      gc.stroke = "none"
    end

    background.add_compose_mask(mask)
    result = background.composite(source, Magick::CenterGravity, Magick::OverCompositeOp)
    result.write "compose_mask_example.jpg"
    source.write "compose_mask_source.gif"
    mask.write "compose_mask.gif"

Close window