我实际上是在尝试获取每个图像的数据,但要做到这一点,我需要将每个图像绘制到画布中。
节点解释器说我的图像没有完全加载,但我不知道为什么。
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)
有人知道我的程序出了什么问题,因为我搜索了但我没有找到任何答案,这是我的代码:
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)
}