我正在尝试在生产机器中查找图像的尺寸。它返回错误。
无法执行 GraphicsMagick/ImageMagick:识别“-ping”“-format”“%wx%h”“uploads/userPhoto-1499669685192.png”这很可能意味着无法找到 gm/convert 二进制文件size==undefined
但它在本地机器上工作正常,我已经在生产机器上上传了与本地机器相同的模块。
根据gm 的源代码,此错误发生在spawn
(function to start a process) 返回时ENOENT
,这是“no entry”的低级错误,意味着在$PATH
运行的节点进程中找不到所需的程序(我的意思是可能存在,但您仍然需要检查运行进程的环境)。
因此,这是所需组件的简单安装问题。本地机器拥有所有这些,但不是您的生产机器。您说您“已经上传了所有模块”(我认为您的意思是所有 npm 模块),但这还不够,该gm
模块依赖于 GraphicsMagick 或 ImageMagick 之一。
来自gm 主页的报价:
首先下载并安装 GraphicsMagick 或 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
您可以从此链接找到更多选项和信息。
这对我有用:
如果您在 Windows 上仍然出现错误,请通过 ImageMagick.exe 重新安装:
这是旧的,但我在 Fedora 上没有问题,但在 Ubuntu 上(我使用的是 Travis CI):
这不起作用
sudo apt-get -y install imagemagick
这有效:
sudo apt-get -y install graphicsmagick
如果您安装了 ImageMagick,那么您必须从您的 magick 二进制文件在 Mac 上gm
的公开目录中创建一个符号链接执行这应该会有所帮助。/usr/local/bin
ln -s /path/to/bin/magick /path/to/bin/gm
gm
应放置在暴露于终端的路径中。