画布 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 对象大小的 4 倍: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;
语法
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 |
❮ 画布参考