错误:无法执行GraphicsMagick/ImageMagick:识别"-ping"" - format""%wx%h"

aka*_*aur 9 node.js express gm

我试图在生产机器中找到图像的尺寸.它返回错误.

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

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

qlo*_*own 12

根据gm的源代码,当spawn(启动进程的函数)返回时发生此错误ENOENT,这是"无条目"的低级错误,这意味着$PATH 在运行节点进程中找不到所需的程序(我的意思是可能存在,但你仍然需要检查运行过程的环境).

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

主页面引用gm:

首先下载并安装GraphicsMagick或ImageMagick.

  • 1.5 年后来到这里,因为这对于某些库和包来说仍然是一个问题。您可以通过brew轻松安装这些软件包。`brew 安装 imagemagick Graphicsmagick`。 (2认同)

小智 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
Run Code Online (Sandbox Code Playgroud)

我在这里列出了一些identify命令的例子来说明它的有用性和易用性。首先,让我们识别 JPEG 格式的图像:

$ magick identify rose.jpg
> rose.jpg JPEG 70x46 70x46+0+0 8-bit sRGB 2.36KB 0.000u 0:00.000
Run Code Online (Sandbox Code Playgroud)

或者要获取 72 DPI 下图像的打印尺寸(以英寸为单位),请使用:

$ magick identify -format "%[fx:w/72] by %[fx:h/72] inches" document.png
> 8.5 x 11 inches
Run Code Online (Sandbox Code Playgroud)

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