使用Node.js在画布中绘制DrawImage

时间:2014-10-17 14:22:26

标签: 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)
    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)
}

0 个答案:

没有答案
相关问题