首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MiniMagick shell_api是空的?

MiniMagick shell_api是空的?
EN

Stack Overflow用户
提问于 2015-09-02 21:10:51
回答 1查看 87关注 0票数 0

我刚开始在Rails应用程序中使用MiniMagick,我遇到了一个问题,似乎在任何地方都找不到引用。我的超级简单测试用例如下:

代码语言:javascript
复制
MiniMagick.configure do |config|
  config.cli = :graphicsmagick
end

image = MiniMagick::Image.open("Sunset.png")
image.resize "100x100"
image.format "png"
image.write('composite.png')

这会导致

代码语言:javascript
复制
NoMethodError: undefined method `gsub' for nil:NilClass
/Users/me/.rvm/gems/jruby-1.7.18@project/gems/mini_magick-4.3.0/lib/mini_magick/shell.rb:32:in `execute'

这个错误是由image.resize调用引发的(尽管image.valid?image.blank?和其他无疑也会引发相同的错误),而抛出错误的MiniMagick::Shell类中的代码行是:

代码语言:javascript
复制
send("execute_#{MiniMagick.shell_api.gsub("-", "_")}", *command)

让我得出结论,MiniMagick.shell_api在不应该是零的情况下是零的。

我上了

  • JRuby-1.7.18
  • Rails 3.2.21
  • Mac 10.9.5
  • GraphicsMagick 1.3.21 2015-02-28 Q8

我还看到了使用ImageMagick 6.9.1-1 Q16 x86_64 2015-04-15的相同错误.我可以在命令行上使用GraphicsMagick来调整图像的大小,而不会出现问题。我甚至在Rails应用程序之外编写了一个简单的Ruby类,在这个应用程序中,相同的代码工作得很好!

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-09-03 13:11:27

今天早上,我开始深入研究MiniMagick代码来解决这个问题。原来,MiniMagick.shell_api是一个配置项。默认值是"open3“。我不知道为什么我的Rails用例要用nil覆盖默认值,但是,通过添加显式配置,我的问题得到了解决,善良占上风。

代码语言:javascript
复制
MiniMagick.configure do |config|
  config.cli = :graphicsmagick
  config.shell_api = "open3"
end

image = MiniMagick::Image.open("Sunset.png")
image.resize "100x100"
image.format "png"
image.write('composite.png')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32363173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档