在Javascript中将图像转换为RGB数组

在Javascript中将图像转换为RGB数组,javascript,canvas,rgb,Javascript,Canvas,Rgb,可以从Javascript中的PNG或BMP图像获取像素数组吗?我想从图像中获得一个RGB数组,这样我就可以操纵像素数组,然后在画布上绘制修改后的图像 更新:我在这里发现了一个完全相同的副本: 然而,答案并没有详细说明如何实际解决这个问题。网上有100个关于使用HTML画布的教程,这些教程获取画布的RGBA值。搜索canvas imageData,您会发现大量信息 你所要做的就是: ctx.drawImage(img, 0, 0); var imgData = ctx.getImageData(

可以从Javascript中的PNG或BMP图像获取像素数组吗?我想从图像中获得一个RGB数组,这样我就可以操纵像素数组,然后在画布上绘制修改后的图像

更新:我在这里发现了一个完全相同的副本:


然而,答案并没有详细说明如何实际解决这个问题。

网上有100个关于使用HTML画布的教程,这些教程获取画布的RGBA值。搜索canvas imageData,您会发现大量信息

你所要做的就是:

ctx.drawImage(img, 0, 0);
var imgData = ctx.getImageData(x, y, width, height).data;

imgData现在是一个数组,其中每4个位置都是每个像素。因此
[0][1][2][3]
是第一个像素的
[r][g][b][a]

如果您单击该问题答案的链接,您将获得如何反转图像中每个像素颜色的详细答案。将代码转换为存储像素数组应该很简单。请参阅“img”的参数类型的可能重复项?它应该是图像对象,还是作为字符串的图像URL?@AndersonGreen作为图像对象的实例,您可以通过以下任一种方式获取它:
var img=new image();img.src=”http://...“或者img.src=“data:image/jpeg;base64,…”
我没有,因为我正在运行XHTML的一个子集,但我有如何做到这一点?imgData会被视为字节数组吗?请注意,我必须初始化图像和画布的宽度和高度以使其工作:
让图像=新图像(800600);[canvas.width,canvas.height]=[img.width,img.height]