0

我有一个节点应用程序,它接受上传的图像(使用强大的)并将其存储到 Amazon S3 存储桶中。在将其保存到 S3 之前,我想获取图像的宽度、高度等以供将来考虑。我发现这个问题有帮助:Open images on NodeJS and find out width/height

但是,当我尝试使用 imagemagick(或 gm,就此而言,我都尝试过)打开图像时,我收到错误 127。具体来说,imagemagick 报告:

{"timedOut":false,"killed":false,"code":127,"signal":null}

我知道该文件存在(因为它已正确上传到 S3 存储桶),并且我可以通过 fs 对其进行操作(例如,重命名),但我找不到有关错误代码 127 的任何文档来确定 IM 失败的原因。考虑到上传到强大的文件可能有些奇怪导致它无法正确读取,我尝试使用 imagemagick 在同一文件夹中加载一个简单的“test.jpg”图像:

    im.identify('test.jpg', function(err, features){
        if(!err) 
        {
            // my image processing code
        }
        else
        {
            // my err handling code; spits out the error above
        }
    });

不幸的是,这以完全相同的方式失败,即使我确定 test.jpg 是一个很好且格式正确的图像。

那么,任何人都可以帮助我理解错误 127 是什么以及为什么 ImageMagick 会在 fs 能够很好地读取文件时抛出它......?

4

4 回答 4

2

这些是几个 php 命令,用于查找 Imagemagick 的路径,应该确认它已安装。有时在 php 中仅使用 convert 就会出现问题,您需要使用完整路径;类似 /usr/local/bin/convert

echo "<pre>";
system("type convert"); 
system('which convert',$path); print_r($path); 
echo "</pre>";

我知道您没有使用 php,但您仍然应该能够使用这些方法。

于 2012-06-05T18:18:58.730 回答
1

确保安装了“转换”

sudo apt-get 更新

sudo apt-get install imagemagick --fix-missing

于 2012-08-31T13:15:28.140 回答
0

德普。我没有安装 ImageMagick 本身。我认为安装 NPM 就足够了。没有意识到还有其他依赖项,并且错误消息有点神秘;)

于 2012-06-05T19:03:02.990 回答
0

我有同样的问题,只需安装 Graphics Magick,http://www.graphicsmagick.org/

测试您的安装是否按照向导的建议工作,仅此而已。

于 2013-05-28T20:22:57.303 回答