使用Node.js在画布中绘制图像

使用Node.js在画布中绘制图像,node.js,canvas,drawimage,getimagedata,Node.js,Canvas,Drawimage,Getimagedata,实际上,我正在尝试获取每个图像的数据,但要做到这一点,我需要将每个图像绘制到画布中 节点解释器说我的图像没有完全加载,但我不知道为什么 ctx.drawImage(img, 0, 0, img.width / 4, img.height / 4); ^ Error: Image given has not completed loading at Function.CheckIMG.LoadImage (C:\ ***\FindWrongImage.js:44:6

实际上,我正在尝试获取每个图像的数据,但要做到这一点,我需要将每个图像绘制到画布中

节点解释器说我的图像没有完全加载,但我不知道为什么

ctx.drawImage(img, 0, 0, img.width / 4, img.height / 4);
            ^
Error: Image given has not completed loading
    at Function.CheckIMG.LoadImage (C:\ ***\FindWrongImage.js:44:6)
    at C:\***\FindWrongImage.js:26:25
    at fs.js:271:14
    at Object.oncomplete (fs.js:107:15)
有人知道我的程序出了什么问题吗?因为我搜索了,但没有找到任何anwser,以下是我的代码:

var fs = require('fs');
var path = require('path');
var Canvas = require('canvas'), ImageCanvas = Canvas.Image;
var dir  = 'images/';

function CheckIMG() {}
module.exports = CheckIMG;

var img = new Canvas.Image;

CheckIMG.BrowseFolder = function() {
    fs.readdir(dir, function(err, files) {
        if (err) 
            throw err;
        files.forEach(function(file) 
        {   
            fs.readFile(dir + file, function(err, data) {
                if (err) 
                    throw err;
                var bool = CheckIMG.LoadImage(data);
                if (bool === false)
                    console.log("delete file")
                    //fs.unlinkSync(file);
            });
        });
    });
}


CheckIMG.LoadImage = function(data) {

    img.src = data;
    var canvas = new Canvas(img.width, img.height);
    var ctx = canvas.getContext('2d');

    ctx.drawImage(img, 0, 0, img.width / 4, img.height / 4);
    var imageData = ctx.getImageData(70, 50, img.Width, img.Height);
    console.log(imageData)
}

您要加载多少图像?也许它会窒息?试着只和几个人一起。这对我有效。问题不在这里,因为如果我的文件夹包含1或6个图像,我会出现相同的错误。确定。也许是系统特定的?我在OSX上。你可以试着在Linux机器上运行这个东西。我在Windows7上,我会在Linux机器上试一下。坦克就是你!你弄明白了吗?我在Windows 10上,不断收到与您相同的错误。