【发布时间】:2015-01-24 04:25:07
【问题描述】:
此错误仅在由 Ruby on Rails 服务器执行时发生。
我尝试通过实现自己的方法绕过 Carrierwave 的调整大小选项,但结果相同。
当我从命令行运行脚本时(我需要'mini_magick' gem)。这一切都完美无缺。
MiniMagick gem 似乎安装正确,老实说,我有点想办法解决这个问题。
一些版本(不确定是否有用):
- 红宝石 - 1.9.3p545
- 导轨 - 4.1.1
- mini_magick - 4.0.1
- ImageMagick - 6.9.0-0 Q16
感谢任何帮助。
-编辑,我使用的是 Windows 8.1
示例代码:
require 'mini_magick'
filename = 'test.jpg'
image = MiniMagick::Image.open(filename)
image.resize "1000x1000"
image.format "png"
image.write "test.png"
上面的代码在从 cmd 执行时可以完美运行。
thumb = MiniMagick::Image.open(i.image.path)
thumb.resize "200*200"
上面的代码 sn-p 在放置在控制器中时会在 RoR 中引发错误(创建)
或者,直接从carrierwave取消注释resize选项会引发完全相同的错误。
# version :thumb do
# process :resize_to_fill => [200, 200]
# end
还有一点注意事项: 我已经禁用了 minimagicks 验证,以找出导致它当时抛出错误的原因:
使用 MiniMagick 操作失败,可能不是图像?原始错误:找不到可执行文件:“识别”
我希望这能解决一些问题。
-编辑
我决定将 windows 作为开发平台,并切换到 linux 作为开发平台。修复了我所有的问题(事后看来,我的错误可能是由于缺少对 imagemagick 方面的依赖)。
【问题讨论】:
-
您没有向我们展示任何示例代码,甚至没有真正清楚地描述您的问题。您要调整什么图像的大小?你是怎么加载它的?
标签: ruby-on-rails ruby imagemagick carrierwave minimagick