Canvas createImageData() 方法
示例
创建一个 100*100 像素的 ImageData 对象,每个像素都是红色
JavaScript
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
const imgData = ctx.createImageData(100, 100);
for (let i = 0; i < imgData.data.length; i += 4)
{
imgData.data[i+0] = 255;
imgData.data[i+1] = 0;
imgData.data[i+2] = 0;
imgData.data[i+3] = 255;
}
ctx.putImageData(imgData, 10, 10);
自己尝试 »
描述
The createImageData()
方法创建一个新的空白 ImageData 对象。新对象的像素值为透明黑色:RGBA(0, 0, 0, 0)。
对于 ImageData 对象中的每个像素,都有四部分信息,即 RGBA 值
R - 红色 (0-255)
G - 绿色 (0-255)
B - 蓝色 (0-255)
A - Alpha 通道 (0-255; 0 为透明,255 为完全可见)
颜色/alpha 信息存储在一个数组中,该数组的大小是 ImageData 对象大小的四倍:width*height*4。
包含颜色/alpha 信息的数组存储在 ImageData 对象的 data 属性中。
示例
将 ImageData 对象中的第一个像素设置为红色
imgData = ctx.createImageData(100, 100);
imgData.data[0] = 255;
imgData.data[1] = 0;
imgData.data[2] = 0;
imgData.data[3] = 255;
将 ImageData 对象中的第二个像素设置为绿色
imgData = ctx.createImageData(100, 100);
imgData.data[4] = 0;
imgData.data[5] = 255;
imgData.data[6] = 0;
imgData.data[7] = 255;
另请参阅
语法
The createImageData() 方法有两种版本
创建具有指定维度的新的 ImageData 对象
context.createImageData(width, height) |
创建与另一个 ImageData 对象具有相同维度的新的 ImageData 对象(不复制 ImageData 对象)
context.createImageData(imageData) |
参数值
参数 | 描述 |
---|---|
width | 新 ImageData 对象的宽度(以像素为单位) |
height | 新 ImageData 对象的高度(以像素为单位) |
imageData | 另一个 ImageData 对象 |
返回值
ImageData 对象 |
浏览器支持
The <canvas>
元素是 HTML5 标准 (2014)。
createImageData()
在所有现代浏览器中都受支持
Chrome | Edge | Firefox | Safari | Opera | IE |
是 | 是 | 是 | 是 | 是 | 9-11 |
❮ Canvas 参考