【问题标题】:RMagick returns nil reading JPEGRMagick 返回 nil 读取 JPEG
【发布时间】:2010-03-29 16:00:16
【问题描述】:

当我尝试使用 RMagick 在 Rails 中打开 JPEG 格式文件时,它总是返回 nil 和任何 jpg 文件。其他文件格式打开也很好。

$ script/console
Loading development environment (Rails 2.3.4)
>> require 'RMagick'
>> img = Image.read("1.gif").first
=> 1.gif GIF 230x100 230x100+0+0 PseudoClass 256c 8-bit 2kb
>> img = Image.read("1.png").first
=> 1.png PNG 1280x800 1280x800+0+0 DirectClass 8-bit 156kb
>> img = Image.read("1.jpg").first
=> nil

为什么会这样?

【问题讨论】:

    标签: ruby-on-rails imagemagick jpeg rmagick


    【解决方案1】:

    您是否安装了jpeg 库? http://www.ijg.org/

    【讨论】:

    • 是的,我将libjpeg库重新安装到版本8a,结果相同。
    • 我正在运行RMagick 2.12.2。在 irb 中,require 'RMagick',然后Magick::Image.read('abc.jpg') 返回=> [abc.jpg JPEG 2000x1003 2000x1003+0+0 DirectClass 8-bit 1409kb]
    【解决方案2】:

    我假设您已经测试了其他 jpg 并且它们都返回 null?

    您可能想在 bash 提示符下(不在 irb 中)尝试“识别”命令来测试 imagemagick 并确保它不会在 jpg 上返回 null。

    我在使用错误的 imagemagick 构建时遇到了 Rmagick 问题,不得不重新编译我的库。

    除此之外,您可能正在处理一个损坏的 .jpg 文件,该文件没有正确保存其标题。

    【讨论】:

    • identify 1.jpg 1.jpg JPEG 3072x2304 3072x2304+0+0 8-bit DirectClass 2.692MiB 0.000u 0:00.010 这意味着我破坏了RMagick?是的,这些 jpeg 在我的托管站点上使用 RMagick 可以很好地打开。我重新安装了 RMagick,但没有帮助。
    • Yuri,这很奇怪,如果您对根文件夹具有 sudo 访问权限并运行以下命令:“sudo find . | grep identify” 只是为了确保没有多个识别二进制文件。您的 RMagick 构建似乎确实有问题。它似乎没有找到 jpeg 库。如果您发现多个标识二进制文件,您可能需要删除 gem 和 imagemagick,然后从头开始重新安装它们。我知道这不是很有趣。
    猜你喜欢
    • 2019-06-12
    • 2015-12-01
    • 2017-01-20
    • 2017-07-24
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多