在Ruby / Rails上尽可能地运行MiniMagick例程?

时间:2012-06-12 00:33:20

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

以下代码只是将给定字符串写入存储到文件系统的现有图像。就图像处理而言,它并不是非常复杂。但是,调用MiniMagick显然会产生一些开销。此外,这个例程将被频繁调用,因此需要尽快完成。

除了将映像缓存到磁盘之外,还有哪些选项可以使用rails / ruby​​来确保此代码以最佳性能运行?

variable = "some string"

mm = MiniMagick::Image.open("#{Rails.root}/app/assets/images/b.png")
  mm.combine_options do |c| 
    c.gravity 'center' 
    c.pointsize '13' 
    c.draw "text 33,0 '#{variable}'" 
  end

 send_data(mm.to_blob, :type => 'image/png', :disposition => 'inline'

1 个答案:

答案 0 :(得分:1)

图像处理的标准方法是在后台执行 - 用户上传图像(可能直接到S3),然后服务器在后台处理图像缩略图。

这使应用程序尽可能快。这是一种使用resque:https://github.com/lardawge/carrierwave_backgrounder

在后台处理载波上传的方法

然后,您将此图像处理移动到载波作为一个步骤,您就可以开始了!