lib/carrierwave/processing/rmagick.rb in carrierwave-0.8.0 vs lib/carrierwave/processing/rmagick.rb in carrierwave-0.9.0
- old
+ new
@@ -114,10 +114,11 @@
#
# image.convert(:png)
#
def convert(format)
manipulate!(:format => format)
+ @format = format
end
##
# Resize the image to fit within the specified dimensions while retaining
# the original aspect ratio. Will only resize the image if it is larger than the
@@ -212,11 +213,11 @@
# [Magick::Image] additional manipulations to perform
#
def resize_and_pad(width, height, background=:transparent, gravity=::Magick::CenterGravity)
manipulate! do |img|
img.resize_to_fit!(width, height)
- new_img = ::Magick::Image.new(width, height)
+ new_img = ::Magick::Image.new(width, height) { self.background_color = 'rgba(255,255,255,0)' }
if background == :transparent
filled = new_img.matte_floodfill(1, 1)
else
filled = new_img.color_floodfill(1, 1, ::Magick::Pixel.from_color(background))
end
@@ -331,17 +332,17 @@
frame = yield( *[frame, 0, options].take(block.arity) ) if block_given?
frame
end
write_block = create_info_block(options[:write])
- if options[:format]
- frames.write("#{options[:format]}:#{current_path}", &write_block)
+ if options[:format] || @format
+ frames.write("#{options[:format] || @format}:#{current_path}", &write_block)
else
frames.write(current_path, &write_block)
end
destroy_image(frames)
rescue ::Magick::ImageMagickError => e
- raise CarrierWave::ProcessingError, I18n.translate(:"errors.messages.rmagick_processing_error", :e => e)
+ raise CarrierWave::ProcessingError, I18n.translate(:"errors.messages.rmagick_processing_error", :e => e, :default => I18n.translate(:"errors.messages.rmagick_processing_error", :e => e, :locale => :en))
end
private
def create_info_block(options)