缺少仅从Node.js运行的图像文件名ImageMagick convert

缺少仅从Node.js运行的图像文件名ImageMagick convert,node.js,imagemagick,imagemagick-convert,Node.js,Imagemagick,Imagemagick Convert,我建立了一个小脚本,将首先蒙太奇8瓷砖在一起,然后缩小它,然后它不得不扭曲的形象 一切都按计划进行,直到变形部分 this.distort = function(filename) { var distortDeferred = Q.defer(); var totalWidth = width * waves * 2, totalHeight = height * waves * 2; var params = [ filename, '-matte

我建立了一个小脚本,将首先蒙太奇8瓷砖在一起,然后缩小它,然后它不得不扭曲的形象

一切都按计划进行,直到变形部分

this.distort = function(filename) {
  var distortDeferred = Q.defer();

  var totalWidth = width * waves * 2,
      totalHeight = height * waves * 2;

  var params = [
    filename,
    '-matte',
    '-virtual-pixel',
    'transparent',
    '-distort',
    'Perspective "{left},{top} {newLeft},{top}   {left},{bottom} {left},{bottom}   {right},{bottom} {right},{bottom}    {right},{top} {newRight},{top}"'.assign({
      left: 0,
      top: 0,
      newLeft: totalWidth * distortPercentage,
      bottom: totalHeight,
      right: totalWidth,
      newRight: totalWidth - totalWidth * distortPercentage
    }),
    filename
  ];

  im.convert(params, function() {
    console.log(arguments);
  });

  return distortDeferred.promise;
};
以下函数将给出错误:

Error: Command failed: convert: missing an image filename `tmp/5458f2e3d6840bb65ba6100f.png' @ error/convert.c/ConvertImageCommand/3184.
在命令行上运行完全相同的操作将获得所需的输出

我可能犯的错误以及我已经测试过的错误:

  • 两个图像转换,同时转换图像
  • 不存在图像
  • 图像的文件权限设置不正确
  • ImageMagick缺少插件
两个图像转换,同时转换图像

一切都是通过延迟和承诺来完成的,因此不可能同时运行两个请求,可以肯定的是,我在调用扭曲函数之前设置了2000毫秒的超时。也没有帮助

不存在的图像

fs.fileExists
测试了这一点。结果如预期

图像的文件权限设置不正确

为了安全起见,我在文件夹上尝试了一个
chmod-R 777文件夹
。结果如预期

ImageMagick缺少插件

在谷歌搜索之后,我遇到了一些没有安装合适插件的人,他们收到了与我相同的错误

显然,它与缺少JPEG库或PNG有关

所以在运行了
identifite-list format
之后,很明显我已经安装了相应的库来完成这样的操作

简介

我认为错误也可能在node而不是ImageMagick中找到,因为操作从命令行运行时没有问题