lib/carrierwave/processing/rmagick.rb in carrierwave-3.0.0.beta vs lib/carrierwave/processing/rmagick.rb in carrierwave-3.0.0.rc

- old
+ new

@@ -60,14 +60,16 @@ included do begin require "rmagick" rescue LoadError - require "RMagick" - rescue LoadError => e - e.message << " (You may need to install the rmagick gem)" - raise e + begin + require "RMagick" + rescue LoadError => e + e.message << " (You may need to install the rmagick gem)" + raise e + end end prepend Module.new { def initialize(*) super @@ -226,16 +228,10 @@ def resize_and_pad(width, height, background=:transparent, gravity=::Magick::CenterGravity) width = dimension_from width height = dimension_from height manipulate! do |img| img.resize_to_fit!(width, height) - new_img = ::Magick::Image.new(width, height) { |img| img.background_color = background == :transparent ? 'rgba(255,255,255,0)' : background.to_s } - if background == :transparent - filled = new_img.matte_floodfill(1, 1) - else - filled = new_img.color_floodfill(1, 1, ::Magick::Pixel.from_color(background)) - end - destroy_image(new_img) + filled = ::Magick::Image.new(width, height) { |image| image.background_color = background == :transparent ? 'rgba(255,255,255,0)' : background.to_s } filled.composite!(img, gravity, ::Magick::OverCompositeOp) destroy_image(img) filled = yield(filled) if block_given? filled end