# map.rb

    #!/usr/local/bin/ruby18 -w

    # Demonstrate the map, append, and composite methods by
    # mapping the colors in three separate images into the
    # 216 "Web-safe" colors.

    require 'RMagick'

    # Read three images.
    unmapped = Magick::ImageList.new("images/Hot_Air_Balloons.jpg","images/Violin.jpg","images/Polynesia.jpg")

    # "Read" the Netscape 216-color cube
    map = Magick::ImageList.new "netscape:"

    # Map the group of unmapped into the Netscape colors
    $stdout.sync = true
    printf "Mapping... Please be patient, this may take a few seconds... "
    mapped = unmapped.map map, false
    puts "Done."

    # Use the append method to arrange the unmapped images
    # side-by-side into a single image. Repeat for the mapped images.
    before = unmapped.append false
    before.write 'map_before.jpg'

    after = mapped.append false
    after.write 'map_after.jpg'
    exit

Close window