我尝试将此命令行选项转换为在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
答案 0 :(得分:1)
嗯,看起来你的方法应该是mattecolor
但这并不能解释为零:NilClass。
我想知道你是否必须在你的上传器中加入ImageMagick。
操纵!()
使用RMagick处理图像。此方法将加载图像 然后将其每个帧传递给提供的块。然后它将
将图像保存到磁盘。
<强>疑难杂症强>
此方法假定对象响应current_path。任何 混合此模块的类必须具有current_path方法。 CarrierWave :: Uploader可以,所以你不必担心这个问题 大多数情况。
http://carrierwave.rubyforge.org/rdoc/classes/CarrierWave/MiniMagick.html#M000063