Image Magick Module 抛出奇怪的错误(Express js Node js)

Posted

技术标签:

【中文标题】Image Magick Module 抛出奇怪的错误(Express js Node js)【英文标题】:Image Magick Module throwing weird error (Express js Node js) 【发布时间】:2016-01-11 12:22:53 【问题描述】:

请先看代码。在这里,我进行了一系列输入,照片的名称采用数组格式。

for (var i = 0; i < photos.length; i++) 
var x = './images/offers/' + testooo + '/' + photos[i];
var y = './images/offers/' + testooo + '/thumbnails/' + photos[i];
/*
gm(x)
.resizeExact(200, 200)
.write(y, function (err) 
  if (!err) console.log('done');
);*/

im.resize(

    srcData: fs.readFileSync(x, 'binary'),
    width: 200
, function(err, stdout, stderr) 
    if (err) 

        console.log(err);
        console.log('error part');
    
    fs.writeFileSync(y, stdout, 'binary');
    console.log('Resized Photos');
);

你可以看到图像魔法部分在那里引发了这个错误。

events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: write EOF
    at exports._errnoException (util.js:746:11)
    at WriteWrap.afterWrite (net.js:775:14)

现在我想补充一件事,您可以看到在评论部分有一些以 gm 文字开头的内容。我也尝试使用图形魔法模块。代码运行没有任何错误,但没有创建缩略图。 Graphics Magick 模块使用 image magick 模块工作。

请让我知道我做错了什么。

【问题讨论】:

您能否在调用im.resize() 之前添加对fs.stat() 的调用,如here 所示,并显示输出?这将有助于我们进行故障排除。 @NathanJones 感谢您抽出宝贵时间。我只是这样做了,File Exists 打印在我的控制台上。 如果你打开一个命令行shell,你能运行convert -version吗?根据this,您可能实际上没有安装 imagemagick。 @NathanJones 谢谢。问题完全相同,但只有一个来自 url 数组的图像正在重新调整大小。无论如何,这是一个不同的问题,我会调查一下。谢谢你的帮助。请发布与答案相同的内容,这将有助于其他面临类似问题的人。 【参考方案1】:

此错误可能是由于未安装 ImageMagick 造成的。

如果您无法运行 convert -version 并在 shell 中查看 ImageMagick 版本详细信息,您可能还没有安装它。

安装程序可以在here找到。

【讨论】:

如果尝试在 Windows 上使用github.com/aheckmann/gm 模块调用 IM,我还必须在安装向导中选中“安装旧版实用程序(例如转换)”。

以上是关于Image Magick Module 抛出奇怪的错误(Express js Node js)的主要内容,如果未能解决你的问题,请参考以下文章

运行包抛出 ImportError: No module named image

闪亮的 Flexdashboard 中的 image_composite (Magick) 返回错误

R语言使用magick包的image_animate函数创建多张图片滚动播放的动图( Animating image frames)

image magick 批量转换文件

在使用自制软件安装的 Mac 上使用 Image::Magick 注释图像

sh feh-image-magick.sh