【问题标题】:No decode delegate for this image format `' @ error/blob.c/BlobToImage/348此图像格式没有解码委托 `' @ error/blob.c/BlobToImage/348
【发布时间】:2018-04-22 17:44:27
【问题描述】:

我有与这篇文章类似的问题:ImageMagick: No decode delegate for this image format `' @ error/constitute.c/ReadImage/504

每当我在命令行中使用 imagemagick 时,它似乎都可以工作,但是在我使用 Ruby on Rails 的开发环境中,任何 imagemagick 命令都会抛出错误:此图像格式没有解码委托 `'

如链接问题中所述,大多数帖子都缺少特定的代表,但我的 imagemagick 有: 代表 bzlib mpeg freetype jng jpeg lzma png tiff xml zlib

在我的程序中专门运行 Magick::Image.from_blob、to_blob、列或行时会发生此错误。

我还安装了 rMagick 作为 gem 来处理这些命令,这发生在 Rails 2 和 Rails 4 中。

有没有人遇到过这种情况并知道为什么我的 ImageMagick 无法识别图像类型?

【问题讨论】:

  • 你的命令行命令是什么?它在抱怨哪个代表?我已经在 PHP Imagick 中使用 Ghostscript 看到了这一点。 PHP(或在您的情况下为 Ruby)可能不使用相同的环境 PATH。我听说的解决方案是将委托库的完整路径放在您的 delegates.xml 文件中。我没有亲自处理过这个问题,因为我大多只使用命令行。抱歉,我不使用 Ruby,也不了解它。
  • 你能给我们一个正在运行的命令的例子吗(在命令行中以及从你的 rails 程序中运行什么)?你检查了什么以确保从你的 rails 环境到你的命令行的事情是一样的?例如,您是否尝试过使用bundle exec 运行命令行命令?

标签: ruby-on-rails delegates imagemagick rmagick


【解决方案1】:

好吧,我终于想通了。解决方案是,当我安装 rMagick 时,我没有正确设置路径以指向正确版本的 imagemagick。最终,我在命令行的 Rails 环境中运行了转换命令,得到了带有错误标题的完整错误,而不仅仅是 No decode delegate for this image format `'。

我使用自制软件安装了 imagemagick,当我安装 gem 时,包配置路径指向错误的位置。

我将“export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/”放入我的 bash_profile 并重新启动 shell。然后我卸载了 rmagick 并再次运行 bundle install 并且它工作了。

PKG_CONFIG_PATH 中有许多符号链接,可以将 rmagick gem 指向正确的位置,让它这次可以正常工作!

【讨论】:

    猜你喜欢
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 2015-07-12
    • 1970-01-01
    • 2019-04-25
    • 2021-11-05
    相关资源
    最近更新 更多