Как преобразовать параметры командной строки ImageMagick в MiniMagick для использования в CarrierWave - PullRequest
3 голосов
/ 14 марта 2012

Я попытался преобразовать эту опцию командной строки в метод процессора, чтобы использовать в carrierwave, но я не смог заставить его работать.Я следовал методу , который видел здесь .

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 Ответ

1 голос
/ 14 марта 2012

Ну, похоже, ваш метод должен быть mattecolor

Но это не учитывает ноль: NilClass.

Интересно, нужно ли вам включать ImageMagick в ваш загрузчик?

манипулировать! ()

Управление изображением с помощью RMagick. Этот метод загрузит изображение и затем передайте каждый из его кадров предоставленному блоку. Это будет тогда

сохранить изображение на диск.

Попался

Этот метод предполагает, что объект отвечает на current_path. любой Класс, в который входит этот модуль, должен иметь метод current_path. CarrierWave :: Uploader делает, так что вам не нужно беспокоиться об этом в большинство случаев.

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

...