Quantcast
Channel: Trouble with Carrierwave :convert - Stack Overflow
Viewing all articles
Browse latest Browse all 2

Trouble with Carrierwave :convert

$
0
0

I'd like Carrierwave to produce a few versions of an image, one in png format, and one in jpeg format, but I can't seem to get it to work. I realize several similar questions have been asked both here and elsewhere, but I've failed to find a solution. Roughly, here's what I have:

class MyUploader < CarrierWave::Uploader::Base  include CarrierWave::RMagick  version :jpeg do     process :convert => 'jpg'    # more procesors    process :processed => :jpg  end  version :png do    process :convert => 'png'    # more processors     process :processed => :png  end  def store_path(for_file = filename)    if version_name != :png      return "#{version_name}.jpg"    else      return "#{version_name}.png"    end  end  def filename    filename = if version_name != :png      super != nil ? super.split('.').first +'.jpg' : super    else       super != nil ? super.split('.').first +'.png' : super    end  endend

So, regardless of the type of image format I pass in, this produces two files: one named jpg.jpg, and one named png.png. jpg.jpg is indeed always a JPEG file (as verified with Unix's file command), BUT png.png is only a true PNG formated file if and only if I originally pass in a png-formated file (passing in a jpeg results in a jpeg formatted file)!

Ideas?

This might not be useful, but I find the convert method in Carrierwave itself suspicious: convert(some_format) calls manipulate!(:format => some_format), which in turn calls (some_image_object).write("#{some_format}:#{current_path}"). Now if the original image passed in is bla.format (format = jpg, png, etc), current_path with have an extension of .format (tested via a monkey-patch on manipulate!). And the way image format conversion works in RMagick is by calling write with an argument having the desired extension. So why would the jpeg conversion above actually take place? And if so, why would the png conversion fail?

Also, if it's useful, I'm on Rails 3.0.9 and Carrierwave 0.5.6

Thanks!


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images