我正在使用带有Rails 3.1.1应用程序的Paperclip gem。它的工作与广告和预期一样。但是,我想使用imagemagick -liquid-rescale
委托。根据{{3}}(我在terminal.app中尝试过),这有效:
convert logo_trimmed.jpg -liquid-rescale 75x100%\! logo_lqr.jpg
我试过一个变种......
convert my_pic.jpg -liquid-rescale 60x60\! my_new_pic.jpg
这也按预期工作。我已经在我的图像模型中尝试了几种在我的rails应用程序中的排列,但我无法让Paperclip调用液体重新缩放。我的最新尝试是:
has_attached_file :pic, :styles => {:square => "-liquid-rescale 60x60\!" }
此操作失败,没有错误消息,只是使用新名称复制原始图像。
如何指示回形针调用液体重新缩放?
答案 0 :(得分:0)
这就是我的所作所为。我必须编写一个自定义处理器,我将其命名为liquid
。在模型中:
has_attached_file :pic, :styles => {:square => {:processors =>[:liquid],:geometry => "60x60>"} }
我不确定:geometry
选项是否必要,但我添加了它,因为回形针中的thumbnail.rb
表示它不是可选的。
然后我添加了一个文件:/my_app/lib/paperclip_processors/liquid.rb
,内容为:
module Paperclip
class Liquid < Thumbnail
def transformation_command
"-resize '60x60>' -liquid-rescale '60x60!'"
end
end
end
最后,我在控制台中运行了以下内容:
Image.all.each {|i| i.pic.reprocess!}
这就是诀窍。