15

我正在尝试在生产机器中查找图像的尺寸。它返回错误。

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

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

4

5 回答 5

15

根据gm 的源代码,此错误发生在spawn(function to start a process) 返回时ENOENT,这是“no entry”的低级错误,意味着在$PATH 运行的节点进程中找不到所需的程序(我的意思是可能存在,但您仍然需要检查运行进程的环境)。

因此,这是所需组件的简单安装问题。本地机器拥有所有这些,但不是您的生产机器。您说您“已经上传了所有模块”(我认为您的意思是所有 npm 模块),但这还不够,该gm模块依赖于 GraphicsMagick 或 ImageMagick 之一。

来自gm 主页的报价:

首先下载并安装 GraphicsMagick 或 ImageMagick。

于 2017-07-20T22:02:28.447 回答
4

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

您可以从此链接找到更多选项和信息。

于 2017-07-27T04:26:52.620 回答
1

这对我有用:

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

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

  1. 访问http://www.imagemagick.org/script/download.php#windows并下载 exe 文件。
  2. 在本地机器上运行它。
  3. 在“选择附加任务”上选择“安装旧版实用程序(例如转换)。
  4. 安装完成后,在 cmd 的项目目录中输入“grunt”。
于 2018-04-07T05:28:36.987 回答
1

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

这不起作用

 sudo apt-get -y install imagemagick

这有效:

 sudo apt-get -y install graphicsmagick
于 2019-11-24T15:36:44.613 回答
0

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

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

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

于 2020-04-23T05:23:37.250 回答