错误:无法执行GraphicsMagick/ImageMagick:identify“-ping”“-format”“%wx%h”

16
我正在尝试查找生产机器中图像的尺寸。但是出现了错误。

无法执行GraphicsMagick/ImageMagick: identify "-ping" "-format" "%wx%h" "uploads/userPhoto-1499669685192.png",这很可能意味着gm/convert二进制文件无法找到,size==undefined

但在本地机器上它运行得很好,而且我已经在生产机器上上传了与本地机器相同模块。

ImageMagick的哪个版本?什么平台?如果是IM 7,则需要将其编写为magick identify -ping -format“%wx%h”yourimage.png。不要在任何内容周围加上引号,但是要加上“%wx%h”。您是否指定了图像的正确路径?也许您的生产机器没有将imagemagick(convert或magick)的路径添加到其PATH环境变量中。在Unix上,它通常是/usr/bin/convert或/usr/bin/local/convert。 - fmw42
5个回答

17
根据gm的源代码,当spawn(用于启动进程的函数)返回ENOENT时,即"no entry"的底层错误时,表示在当前运行的节点进程的$PATH中未找到所需程序(我的意思是它可能存在,但仍需要检查正在运行的进程的环境)。因此,这是所需组件的简单安装问题。本地计算机拥有所有这些组件,但您的生产计算机没有。您说您已经上传了"所有模块"(我想您指的是所有npm模块),但这是不够的,gm模块依赖于GraphicsMagick或ImageMagick之一。GM主页的引用如下:

首先下载并安装GraphicsMagick或ImageMagick。


你能告诉我如何在Ubuntu 16.0.4上安装ImageMagick吗? - Suresh Pattu
1
使用以下命令安装ImageMagick:sudo apt install imagemagick 或者选择另一种方式:sudo apt install graphicsmagick - qlown
我在Windows上遇到了这个问题...我已经下载和上传了,但仍然出现这个错误。 - Vishnu
2
1.5年后再次来到这里,因为对于某些库和包仍然存在此问题。您可以通过brew轻松安装这些包。brew install imagemagick graphicsmagick. - Jonathan Nielsen

5

可能是因为GraphicsMagick / ImageMagick没有正确安装,可以下载GraphicsMagick或者ImageMagick。如果你使用的是Ubuntu系统,可以使用以下命令:

sudo add-apt-repository ppa:dhor/myway
sudo apt-get update
sudo apt-get install graphicsmagick
sudo apt-get install imagemagick

我将在此列举一些identify命令的示例,以说明其有用性和易用性。为了开始操作,让我们来识别一个JPEG格式的图像:

$ magick identify rose.jpg
> rose.jpg JPEG 70x46 70x46+0+0 8-bit sRGB 2.36KB 0.000u 0:00.000

或者,要以72 DPI的分辨率获取图像的印刷尺寸(英寸为单位),请使用以下命令:

$ magick identify -format "%[fx:w/72] by %[fx:h/72] inches" document.png
> 8.5 x 11 inches

您可以从此链接中找到更多选项和信息:https://www.imagemagick.org/script/identify.php

3
这是旧内容,但在 Fedora 上没有问题,但在 Ubuntu 上(我正在使用 Travis CI):
这不起作用。
 sudo apt-get -y install imagemagick

这个有效:

 sudo apt-get -y install graphicsmagick

1

以下方法适用于我:

  1. 以管理员身份打开命令提示符,导航到项目文件夹,并在命令提示符中键入“grunt”。
  2. 如果出现“grunt未在本地安装到您的项目”的错误,请确保已安装grunt和grunt-cli。

如果您使用的是Windows系统并且仍然出现错误,请通过ImageMagick.exe重新安装:

  1. 访问http://www.imagemagick.org/script/download.php#windows并下载exe文件。
  2. 在本地计算机上运行它。
  3. 在“选择其他任务”中选择“安装传统实用程序(例如convert)”。
  4. 安装完成后,在cmd中从项目目录键入“grunt”。

1
它对我起作用了。在Windows PC上,我没有标记“安装传统实用程序”。根据您的说明进行了更正,现在它像魅力一样工作! - Daggie Blanqx - Douglas Mwangi

0
如果您已经安装了ImageMagick,那么您需要在Mac上从magick二进制文件中创建一个符号链接到一个公开的目录,例如/usr/local/bin。执行以下操作应该会有所帮助。
ln -s /path/to/bin/magick /path/to/bin/gm

gm 应该放置在终端暴露的路径中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接