Advertisement
iarmin

round_corners

Jun 4th, 2011
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.77 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. require 'rubygems'
  4. require 'RMagick'
  5.  
  6. class Magick::Image
  7.     def round_corners( border_radius )
  8.         mask = Magick::Image.new( columns, rows ) { self.background_color = 'black' }
  9.  
  10.         gc = Magick::Draw.new
  11.         gc.stroke( 'white' ).fill( 'white' )
  12.         gc.roundrectangle( 0, 0, columns-1, rows-1, border_radius, border_radius )
  13.         gc.draw( mask )
  14.  
  15.         mask.matte = false
  16.         @matte = true
  17.  
  18.         composite!( mask, Magick::CenterGravity, Magick::CopyOpacityCompositeOp )
  19.     end
  20. end
  21.  
  22. BORDER_RADIUS = 10
  23.  
  24. if ARGV[0].nil?
  25.     puts "Input image missing..."
  26.     exit
  27. end
  28.  
  29. infile = ARGV[0]
  30. outfile = infile.sub( /\.jpg$/, '.png' )
  31.  
  32. image = Magick::Image.read( infile ).first
  33.  
  34. image.round_corners( BORDER_RADIUS )
  35.  
  36. image.write( outfile )
  37. image.destroy!
  38.  
  39. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement