在尝试调整图像大小时,sharp构造函数不会将变量作为文件路径输入 - [输入文件缺失错误]

时间:2017-03-26 11:40:52

标签: node.js image

将String变量传递给sharp()作为文件路径输入总是给我这个错误是很奇怪的 -

[错误:缺少输入文件或图像格式不受支持]

我甚至将toString()添加到我的变量中,所以我的返回肯定是一个字符串。

var tmp = 'image/'+ id + '.jpg';
var path = tmp.toString();

console.log("What's in tmp: " + tmp);
console.log("What's in path: " + path);

sharp(path)
   .resize(300, 300)
   .toFile('image/'+ id + 'L.jpg', function(err, info) {
      if (err) {
        console.log('Error Type: ', err);
      }
});

我验证代码的方式如下:

它以另一种方式工作,所以我的图像格式是正确的。我甚至做了一个' sharp.format'确认它的支持,所以这不是问题所在。接下来,我复制了“路径”'来自我的控制台日志输出的变量字符串,并将其直接粘贴到sharp构造函数call = sharp()。

控制台输出:

tmp:image / 1.jpg

中的内容

路径中的内容:image / 1.jpg

sharp('image/1.jpg')
   .resize(300, 300)
   .toFile('image/'+ id + 'L.jpg', function(err, info) {
      if (err) {
        console.log('Error Type: ', err);
      }
});

现在一切都重新开始了 - 文件已调整大小并在图像中生成。使用'路径'切换回来变量继续给我没有运气。这种问题令我感到惊讶,因为它在文档中明确指出它支持String类型输入。现在我也对路径和' image / 1.jpg'之间的区别感到困惑。也许我的下一步是使用(path ===' image / 1.jpg')来比较它们。

来自敏锐文档的声明供您参考 - > '输入(缓冲区|字符串)?或包含JPEG,PNG,WebP,GIF,SVG或TIFF图像文件路径的字符串。'

一定是我错过的明显事物。我确信,当他们设计工具时,他们可以灵活地将输入路径定义为代码重用的变量。那有什么建议吗?提前谢谢。

0 个答案:

没有答案
相关问题