我正在使用request和node-canvas模块尝试下载和处理图片:
var request = require('request');
var Image = require('canvas').Image;
var url = 'http://farm8.staticflickr.com/7333/11286633486_070f0d33bc_n.jpg';
request.get({ url: url, encoding: null }, function(err, res, body) {
if (err) throw err;
var image = new Image();
image.onerror = function() {
console.error(arguments);
};
image.onload = function() {
console.log('loaded image');
};
image.src = new Buffer(body, 'binary');
});
我收到错误“Error: error while reading from input stream
”(触发了onerror事件)。但是当我在浏览器中点击上面的图像URL时,它会按预期显示图像。
我做错了什么?
答案 0 :(得分:-1)
修正了它!
似乎我在OSX(node-canvas的依赖项)上安装了pixman和/或cairo,可能是因为我试图通过自制软件安装它们。
解决方案是使用以下方法将它们从自制程序中删除:
brew uninstall cairo
brew uninstall pixman
...然后运行:
brew doctor
..检查与cairo和pixman相关的任何损坏的符号链接等。然后你必须手动删除任何cairo& pixman bins / libs / symlinks等使用Finder。
接下来,按照install instructions for node-canvas在OSX上重新安装cairo和pixman。
最后,你可能需要通过npm重新安装node-canvas,所以导航到你的'node_modules'文件夹并删除'canvas'目录。然后运行:
npm install canvas