0

以下代码只是将给定字符串写入存储到文件系统的现有图像。就图像处理而言,它并不是很复杂。但是,调用 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'
4

1 回答 1

1

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

这使应用程序尽可能快。这是一种使用 resque 在后台处理载波上传的方法:https ://github.com/lardawge/carrierwave_backgrounder

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

于 2012-06-12T12:26:32.303 回答