例
創建一個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對象 |
<畫布對象