【问题标题】:MiniMagick error: undefined method 'size' for nilMiniMagick 错误:nil 的未定义方法“大小”
【发布时间】:2014-01-30 19:54:42
【问题描述】:

undefined method 'size' for nil:NilClass 出现在MiniMagick::Utilities.which('mogrify').size 中的def choose_processor mini_magick (3.7.0) lib/mini_magick.rb

好像 mini_magick gem 没有找到我的 ImageMagick。

我使用的是 Windows 7、mini_magick 3.7.0、Rails 4.0.2、Ruby 2.0.0p353、ImageMagick 6.8.8-1

代码:

version :normal do
   process resize_to_limit: [1028,850]
end

ImageMagick 已安装:

C:\Users>convert -version
Version: ImageMagick 6.8.8-1 Q16 x64 2013-12-25 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules OpenMP
Delegates: bzlib cairo freetype jbig jng jp2 jpeg lcms lqr pangocairo png ps rsv
g tiff webp xml zlib 

请帮忙。提前致谢。

【问题讨论】:

    标签: ruby-on-rails image-processing imagemagick imagemagick-convert minimagick


    【解决方案1】:

    您需要确保 ImageMagick,特别是命令 mogrify,位于您的 PATH 环境变量中,即 MiniMagick 首次被调用的位置。根据您启动应用程序的方式,很容易得到与命令提示符中不同的路径。

    要调试问题,请检查发生错误的位置之前的 ENV['PATH'] 的值。您可能会看到路径中缺少 ImageMagick 的文件夹。

    然后,您需要在application.rbenvironments/production.rb 或其他适当的地方添加如下一行:

    ENV['PATH'] += File::PATH_SEPARATOR + 'C:\path\to\imagemagick'
    

    这将保证您的路径包含正确的 ImageMagick 位置。

    【讨论】:

    • 有趣的答案。您将如何进行此调试?考虑到我的开发环境已经有一行:ENV['PATH'] = "/usr/local/Cellar/postgresql/9.2.4/bin:#{ENV['PATH']}" 来处理postgreSQL需要的事实正确提取(Apple 预安装在不同的地方)
    • 这个问题来自 Windows 用户,而您似乎使用的是 Mac OS。我使用 File::PATH_SEPARATOR 来支持任一操作系统;您可以安全地这样做,或者只是扩展您已经添加的行以包含开发机器上 Imagemagick 的路径。
    猜你喜欢
    • 2015-01-24
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多