最新的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畫布參考