是否可以在画布A中读取图像的像素并在画布B上创建像素?我只想在图像像素为绿色的情况下在画布B上创建新像素。 例如,如果图像像素(120,45)是绿色的,则需要在画布B的(120,45)处创建一个绿色的像素。
是否可以在画布A中读取图像的像素并在画布B上创建像素?我只想在图像像素为绿色的情况下在画布B上创建新像素。 例如,如果图像像素(120,45)是绿色的,则需要在画布B的(120,45)处创建一个绿色的像素。
context.getImageData(left, top, width, height);
返回一个ImageData对象,该对象包括以下属性:
CanvasPixelArray
包含所有像素的RGBA值,从左上角开始向右下角移动。换句话说,它是一个包含4*width*height
个条目的数组。
使用这个数组,您可以开始循环遍历每个像素(每个像素+ = 4
个条目),并检查RGBA值。如果它们与您想要的特定值匹配,例如绿色,则将该值复制到画布B中,您可以通过修改新创建的ImageData对象来创建该画布B。
您可以使用以下代码创建一个新的空ImageData对象:
context.createImageData(cssWidth, cssHeight)
> = 150
,则为“绿色”。ImageData
。例如,如果您在画布上绘制了一个不安全的CORS图像,则将无法从该画布中检索ImageData
,就像您也无法使用toDataURL
一样。getImageData()
和putImageData()
来反转图像,并认为这可能是正确的方法。但我不确定像素是否会在画布B中以与图像相同的x,y坐标创建。 - user1004912