shakaran

rmagick composite watermark

Jun 6th, 2014
443
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rails 0.87 KB | None | 0 0
  1.   # 0 = opaque (Magick::OpaqueOpacity) 1= transparent (Magick::TransparentOpacity)
  2.   def watermark(opacity = 0.99, size = 'm')
  3.     manipulate! do |img|
  4.       logo = Magick::Image.read("#{Rails.root}/app/assets/images/watermark#{size}.png").first
  5.       logo.alpha(Magick::ActivateAlphaChannel)
  6.      
  7.       pixels = logo.get_pixels(0, 0, logo.columns,logo.rows)
  8.  
  9.       for pixel in pixels
  10.           pixel.opacity = opacity
  11.       end
  12.    
  13.       logo_opacity = Magick::Image.new(logo.columns, logo.rows)
  14.       logo_opacity.store_pixels(0, 0, logo.columns, logo.rows, pixels)
  15.  
  16.       #logo.opacity = (1 - opacity.to_f) * Magick::QuantumRange
  17.       img.alpha(Magick::ActivateAlphaChannel)
  18.       #img = img.dissolve(logo, 1.0, opacity, Magick::NorthWestGravity, 0, 0)
  19.       img = img.composite(logo_opacity, Magick::NorthWestGravity, 0, 0, Magick::OverCompositeOp)
  20.     end
  21.   end
Advertisement
Add Comment
Please, Sign In to add comment