【发布时间】:2011-06-27 18:22:33
【问题描述】:
我正在使用 MiniMagick 对通过多部分表单上传的图像执行一些图像大小调整。我需要从最初上传的文件中生成几种不同类型的图像。这是执行图像处理的代码:
// Generates a thumbnail image
mm = MiniMagick::Image.open(Rails.root.join('public', 'uploads', new_url))
mm.resize(thumbnail_dimensions.join("x"))
mm.write(Rails.root.join('public', 'uploads', "t_"+new_url))
// Generates cropped version
mm_copy = MiniMagick::Image.open(Rails.root.join('public', 'uploads', new_url))
mm_copy.crop('200x200')
mm_copy.write(Rails.root.join('public', 'uploads', "c_"+new_url))
new_url 是public 文件夹中图像的路径。缩略图例程完美运行。当应用程序开始处理裁剪后的版本时,这就是事情开始破裂的地方,我一生都无法弄清楚。从这段代码中我收到以下错误:
No such file or directory - /tmp/mini_magick20110627-10055-2dimyl-0.jpg
我阅读了一些关于 Rails 中的垃圾收集器可能出现的竞争条件的资料,但我无法解决问题。我也从控制台尝试过,并且可以创建 MiniMagick 实例,但也在那里收到 No such file 错误。在这一点上,我不知道去哪里,所以我希望这里有人能提供一些有用的建议。感谢您的帮助!
详情:
- 操作系统:Ubuntu (Lucid Lynx)
- Rails 版本:3.0.7
- Ruby 版本:1.8.7
- MiniMagick 版本:3.3
【问题讨论】:
-
如果您注释掉上面的缩略图行,裁剪代码是否有效?
-
嗯……我没试过。我现在要回到这个项目,所以我会检查一下并发布结果。