要获取图像数据,请使用canvas上下文的getImageData()方法,然后从数据属性中访问像素数据。数据属性中的每个像素都包含红色,绿色,蓝色和Alpha通道。所以,如果你没有画到画布上你的形象,你可以再做
var imageData = context.getImageData(imageX, imageY, imageWidth, imageHeight);
var data = imageData.data;
然后,你可以从X挑出特定的像素数据和y坐标,像这样
// pick out pixel data from x, y coordinate
var x = 20;
var y = 20;
var red = data[((imageWidth * y) + x) * 4];
var green = data[((imageWidth * y) + x) * 4 + 1];
var blue = data[((imageWidth * y) + x) * 4 + 2];
var alpha = data[((imageWidth * y) + x) * 4 + 3];
你可以找到更多的信息如何使用画布对图像数据进行处理here。
希望有所帮助。
这只是大卫的方式吗?我必须使用画布? – Robinson
这是我能想到的最简单的方法。您可以使用FileReader API来使用readAsArrayBuffer方法创建图像文件的ArrayBuffer,该方法将读取Blob或文件并生成固定长度的二进制数据缓冲区。但是,你必须建立自己的函数来将像素数据提取出缓冲区。画布方法为你做到这一点。 – DavidDomain
我不想走那么远,没有。所以第二个画布缓冲区是。 – Robinson