最新的Web开发教程
 

HTML canvas createImageData() Method

<HTML画布参考

创建一个100*100像素的ImageData对象,其中的每个像素为红色,并把它拖到画布:

YourbrowserdoesnotsupporttheHTML5canvastag。

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() 9


定义和用法

createImageData()方法创建一个新的空白的ImageData对象。 新对象的像素值是透明的黑色默认情况下。

用于在的ImageData对象的每个像素有四个条信息,所述RGBA值:

R -的红色(0-255)
G -颜色绿色(0-255)
B -蓝色(0-255)
A - alpha通道(0-255; 0是透明的,255是完全可见)

所以,透明黑色表示: (0,0,0,0)

颜色/ alpha信息在阵列保持,并且由于该数组包含4条信息的每个像素中,阵列的大小是的ImageData对象的大小的4倍:宽×高×4。 (寻找数组的大小更简单的方法,就是用ImageDataObject.data.length)

含的颜色/ alpha信息的阵列存储在data中的ImageData对象的属性。

提示:在操纵数组中的颜色/ alpha信息后,就可以将图像数据复制回用画布putImageData()方法。

例子:

用于使第一像素中的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对象:

JavaScript syntax: var imgData=context.createImageData(imageData);

参数值

参数 描述
width 新的ImageData对象的宽度以像素为单位
height 新的ImageData对象的高度,以像素为单位
imageData anotherImageData对象

<HTML画布参考