Error: Could not execute GraphicsMagick/ImageMagick: identify "-ping" "-format" "%wx%h"

Error: Could not execute GraphicsMagick/ImageMagick: identify "-ping" "-format" "%wx%h"

我正在尝试查找产品中图像的尺寸 machine.It returns 错误。

Could not execute GraphicsMagick/ImageMagick: identify "-ping" "-format" "%wx%h" "uploads/userPhoto-1499669685192.png" this most likely means the gm/convert binaries can't be foundsize==undefined

但它在本地机器上工作正常,我已经在生产机器上上传了与本地机器相同的模块。

根据source code for gm,当spawn(启动进程的函数)returns ENOENT时会发生此错误,这是[=的低级错误25=],表示在 $PATH 中找不到 运行 节点进程 所需的程序(我的意思是它可能存在,但您仍然需要检查环境运行 个进程)。

所以这是所需组件的简单安装问题。本地机器有所有这些,但不是你的生产机器。你说你有 "already uploaded all modules"(我想你的意思是所有 npm 模块),但这还不够,gm 模块依赖于 GraphicsMagick 或 ImageMagick 之一。

引自main page for gm

First download and install GraphicsMagick or ImageMagick.

可能是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

我在这里列出了几个识别命令的例子来说明它的实用性和易用性。 首先,让我们识别 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

您可以从 this link.

中找到更多选项和信息

这对我有用:

  1. 以管理员身份打开命令提示符,导航到项目文件夹,然后在命令提示符处键入 "grunt"。
  2. 如果出现 "grunt hasn't been installed locally to your project" 错误,请确保安装了 grunt 和 grunt-cli。

如果您在 Windows 上仍然遇到错误,请通过 ImageMagick.exe 重新安装:

  1. 访问http://www.imagemagick.org/script/download.php#windows并下载exe文件。
  2. 运行 它在您的本地计算机上。
  3. Select“在 'Select Additional Tasks'.
  4. 上安装遗留实用程序(例如转换)
  5. 安装完成后,在 cmd 中输入项目目录中的 "grunt"。

这是旧的,但我在 Fedora 中没有问题,但在 Ubuntu 上(我使用的是 Travis CI):

这行不通

 sudo apt-get -y install imagemagick

这个有效:

 sudo apt-get -y install graphicsmagick

如果您安装了 ImageMagick,那么您必须在公开的目录中创建一个指向 gm 的符号链接,例如来自您的 magick 二进制文件的 Mac 上的 /usr/local/bin 执行此操作应该有所帮助。

ln -s /path/to/bin/magick /path/to/bin/gm

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