Sha256: ebf78b28dbf003dfa92fc71edab2073526eb06c37e7d543c505cd97afd2c704c
Contents?: true
Size: 1.25 KB
Versions: 6
Compression:
Stored size: 1.25 KB
Contents
#!/usr/bin/env ruby -w require 'rmagick' points = [145, 65, 174, 151, 264, 151, 192, 205, 218, 291, 145, 240, 72, 291, 98, 205, 26, 151, 116, 151] pr = Magick::Draw.new # Define a clip-path. # The name of the clip-path is "example" pr.define_clip_path('example') do pr.polygon(*points) end # Enable the clip-path pr.push pr.clip_path('example') # Composite the Flower Hat image over # the background using the clip-path girl = Magick::ImageList.new girl.read('images/Flower_Hat.jpg') cols = rows = nil # Our final image is about 280 pixels wide, so here # we widen our picture to fit. The change_geometry # method will adjust the height proportionately. girl.change_geometry('280') do |c, r| pr.composite(0, 0, c, r, girl) cols = c rows = r end pr.pop # Create a canvas to draw on, a bit bigger than the star. canvas = Magick::Image.new(cols, rows) star = Magick::Draw.new star.stroke('gray50') star.fill('gray50') points.map! { |p| p + 8 } star.polygon(*points) star.draw(canvas) canvas = canvas.blur_image(0, 3) # Draw the star shadow over the background pr.draw(canvas) # Crop away all the solid white border pixels. crop = canvas.bounding_box canvas.crop!(crop.x, crop.y, crop.width, crop.height) canvas.write('clip_path.gif') exit
Version data entries
6 entries across 6 versions & 1 rubygems