如何将ImageMagick命令行选项转换为MiniMagick以在CarrierWave中使用

时间:2012-03-13 22:36:07

标签: ruby-on-rails-3 imagemagick carrierwave minimagick

我尝试将此命令行选项转换为在carrierwave中使用的处理器方法,但我无法使其工作。我关注method I saw here

convert E22725-89PC.jpg -matte -fill none -fuzz 15% -opaque white result.png

这是我的CarrierWave上传器

class ImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick

  storage :file

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  process :remove_background => 'white'

  def remove_background(color)
    manipulate! do |img|
      img = img.format 'png'
      img = img.matte
      img = img.fill 'none'
      img = img.fuzz '15%'
      img = img.opaque color
    end
  end

end

1 个答案:

答案 0 :(得分:1)

嗯,看起来你的方法应该是mattecolor

但这并不能解释为零:NilClass。

我想知道你是否必须在你的上传器中加入ImageMagick。

  

操纵!()

     

使用RMagick处理图像。此方法将加载图像   然后将其每个帧传递给提供的块。然后它将

     
    

将图像保存到磁盘。

  
     

<强>疑难杂症

     

此方法假定对象响应current_path。任何   混合此模块的类必须具有current_path方法。   CarrierWave :: Uploader可以,所以你不必担心这个问题   大多数情况。

http://carrierwave.rubyforge.org/rdoc/classes/CarrierWave/MiniMagick.html#M000063