Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t从ImageData对象获取像素_Javascript_Html5 Canvas_Imagedata - Fatal编程技术网

Javascript Can';t从ImageData对象获取像素

Javascript Can';t从ImageData对象获取像素,javascript,html5-canvas,imagedata,Javascript,Html5 Canvas,Imagedata,我试图使用canvas元素和ImageData类从图像中提取像素,但几乎没有成功 我的代码是: var image = new Image(); image.src = "<path to PNG image file>"; var context = document.getElementById("my-canvas").getContext("2d"); context.drawImage(image, 0, 0); var imageData = context.getIma

我试图使用
canvas
元素和ImageData类从图像中提取像素,但几乎没有成功

我的代码是:

var image = new Image();
image.src = "<path to PNG image file>";
var context = document.getElementById("my-canvas").getContext("2d");
context.drawImage(image, 0, 0);
var imageData = context.getImageData(0, 0, 1024, 1024);
console.log(imageData);
var image=newimage();
image.src=“”;
var context=document.getElementById(“我的画布”).getContext(“2d”);
drawImage(image,0,0);
var imageData=context.getImageData(0,0,1024,1024);
控制台日志(imageData);
画布的定义如下:

<canvas id ="my-canvas" width="1024" height="1024">
</canvas>

根据
数据
字段应该是UInt8的4194304(1024*1024*4)大小的数组。相反,我得到了一个奇怪的嵌套结构(如图所示),所有值都是0。该图像为1024*1024 PNG图像

我哪里做错了


您应该等待PNG加载(ImageData初始化为零):

var image=newimage();
image.onload=从PNG提取像素;
image.src=“”;
var context=document.getElementById(“我的画布”).getContext(“2d”);
函数extractPixelsFromPNG(){
drawImage(image,0,0);
var imageData=context.getImageData(0,0,1024,1024);
控制台日志(imageData);
}

每次都让我抓狂
var image = new Image();
image.onload = extractPixelsFromPNG;
image.src = "<path to PNG image file>";
var context = document.getElementById("my-canvas").getContext("2d");

function extractPixelsFromPNG() {
    context.drawImage(image, 0, 0);
    var imageData = context.getImageData(0, 0, 1024, 1024);
    console.log(imageData);
}