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