例
创建一个100个* 100像素的ImageData对象,其中每个像素是红色的,并把它拖到画布:
JavaScript的:
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var imgData=ctx.createImageData(100,100);
for (var 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);
试一试» 浏览器支持
在表中的数字规定,完全支持方法的第一个浏览器版本。
方法 | |||||
---|---|---|---|---|---|
createImageData() | 4 | 9 | 3.6 | 4 | 10.1 |
定义和用法
所述createImageData()方法创建一个新的空白的ImageData对象。 新对象的像素值是透明的黑色默认情况下。
一种用于在对象的ImageData每个像素有四个信息,所述RGBA值:
的R -颜色红(from 0-255)
摹-绿颜色(from 0-255)
乙-蓝色(from 0-255)
A -阿尔法通道(from 0-255; 0 is transparent and 255 is fully visible)
所以,透明黑色表示: (0,0,0,0)
颜色/ alpha信息在阵列中保持,并且由于该数组包含4条信息对于每个像素,该阵列的大小是的ImageData对象的大小的4倍:宽度×高度×4。 (找到阵列的尺寸的更简单的方法,是使用ImageDataObject.data.length)
含的颜色/ alpha信息的阵列存储在数据的的ImageData对象的属性。
Tip:你已经操纵了阵列中的颜色/α信息之后,可以将图像数据复制回与画布putImageData()方法。
Examples:
用于使所述第一像素中的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;
JavaScript语法
这里是两个版本createImageData()方法:
1.这产生具有指定尺寸的新的ImageData对象(以像素为单位):
JavaScript语法: | VAR imgData = context 。 createImageData( width,height ) ; |
---|
2.本创建具有相同的尺寸由anotherImageData指定的对象的新对象的ImageData (this does not copy the image data) :
JavaScript语法: | VAR imgData = context 。 createImageData( imageData ) ; |
---|
参数值
参数 | 描述 |
---|---|
width | 新的ImageData对象的宽度,以像素为单位 |
height | 新的ImageData对象的高度,以像素为单位 |
imageData | anotherImageData对象 |
<画布对象