如何从Paperclip附件创建RMagick图像?

时间:2011-03-02 23:45:56

标签: ruby-on-rails image-processing file-io paperclip rmagick

假设我将图像存储为回形针附件。我想在RMagick中使用这个图像来组合其他图像。但当我问回形针有关时,我递了一张递回图像数据的URL;我想我可以把它读成一个文件,然后将文件读回RMagick - 事实上,这就是我现在正计划做的事情 - 但似乎应该更加直接方式。

换句话说,我的问题与此问题相反:how to create a Paperclip attachment from an RMagick image?我想知道从附着回形针的图片创建RMagick图像的最直接方法。

更新:以防万一不清楚 - 基本问题是ImageList.new()不接受路径,因为paperclip回拨了一个URL,而RMagick显然期望一个本地文件系统路径。不过,也许我在这里遗漏了一些东西。谢谢!

2 个答案:

答案 0 :(得分:3)

你正在使用Ruby。猴子补丁Paperclip::Attachment

# lib/paperclip_magick.rb
require 'RMagick'

module PaperclipMagick
  def to_rmagick(style_name = default_style)
     @image_list ||= ImageList.new(self.path(style_name))
  end
end

Paperclip::Attachment.send(:include, Magick)
Paperclip::Attachment.send(:include, PaperclipMagick)

或类似的东西。

答案 1 :(得分:0)

在我看来,既然你正在操作你的模型中的附件(我猜它是一个图像模型?让我们称之为..)你应该为你的图像模型添加方法来做你需要的操作做例如。

class image < A::B


 def add_logo

   add logo to  self.attachment.path

 end 

end