【问题标题】:MiniMagick error. undefined method 'resize'MiniMagick 错误。未定义的方法“调整大小”
【发布时间】: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


【解决方案1】:

我最近在以下环境中遇到了类似的问题:

  • Windows 8.1
  • Ruby 2.1.5p273
  • Ruby 开发工具包 2.1.5
  • Rails 4.2.0.beta4
  • 载波0.10.0
  • mini_magick 4.0.1
  • ImageMagick6.9.0-Q16 安装在 C:\ImageMagick-6.9.0-Q16

在 RubyMine 的 rails 控制台中,我会得到:

找不到可执行文件:“识别”

只输入两件事后:

filename = 'test.jpg'
image = MiniMagick::Image.open(filename)

其中一个步骤是将 C:\ImageMagick-6.9.0-Q16 添加到我的 Windows PATH 环境变量中。起初,这没有帮助。但是,在关闭并重新打开 RubyMine 之后,问题就消失了——我认为是因为对 PATH env var 的更改(使用独立的 Windows 命令提示符完成)不会影响 RubyMine IDE 环境。

【讨论】:

    【解决方案2】:

    找不到可执行文件:“识别”

    这是来自 MiniMagick (Source code) 的错误消息。我想,正如错误消息所说,您的服务器找不到可执行的“识别”。

    确保您的 ENV['PATH'] 具有“标识”所在的路径。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。

      它在我的本地主机上完美运行,但在服务器(Windows 2012)上,它只能作为 rake 任务运行。在应用程序中运行时,它会失败说

      NoMethodError (undefined method `resize' for #<MiniMagick::Image:0x28c3260>):
      

      不幸的是,设置了路径变量...

      我通过在模型中而不是控制器中做 minimagick 的东西来让它工作....讨厌的解决方法。

      【讨论】:

        猜你喜欢
        • 2014-01-30
        • 2013-12-26
        • 2014-09-04
        • 1970-01-01
        • 1970-01-01
        • 2014-05-22
        • 2019-01-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多