canvas畫素的操作

2021-10-10 09:49:10 字數 1387 閱讀 5213

###在canvas中的畫素操作

到目前為止,我們尚未深入了解canvas畫布真實畫素的原理,事實上,

你可以直接通過imagedata物件操縱畫素資料,直接讀取或將資料陣列寫入該物件中

###得到場景畫素資料

getimagedata():獲得乙個包含畫布場景畫素資料的imagedata對像,它代表了畫布區域的物件資料

ctx.getimagedata(sx, sy, sw, sh)

sx:將要被提取的影象資料矩形區域的左上角 x 座標。

sy:將要被提取的影象資料矩形區域的左上角 y 座標。

sw:將要被提取的影象資料矩形區域的寬度。

sh:將要被提取的影象資料矩形區域的高度。

var imagedata=ctx.getimagedata(0,0,100,100);

您的瀏覽器不支援畫布元素 請您換成萌萌的谷歌

view code

###imagedata物件

imagedata物件中儲存著canvas物件真實的畫素資料,它包含以下幾個唯讀屬性:

width:寬度,單位是畫素

height:高度,單位是畫素

data:uint8clampedarray型別的一維陣列,

包含著rgba格式的整型資料,範圍在0至255之間(包括255)

r:0 --> 255(黑色到白色)

g:0 --> 255(黑色到白色)

b:0 --> 255(黑色到白色)

a:0 --> 255(透明到不透明)

###在場景中寫入畫素資料

putimagedata()方法去對場景進行畫素資料的寫入。

putimagedata(myimagedata, dx, dy)

dx和dy引數表示你希望在場景內左上角繪製的畫素資料所得到的裝置座標

ctx.putimagedata(imagedata,0,0)

###建立乙個imagedata物件

ctx.createimagedata(width, height);

width : imagedata 新物件的寬度。

height: imagedata 新物件的高度。

var imagedata=ctx.createimagedata(100,100);

預設建立出來的是透明的

###操作單個畫素(行與列)

###馬賽克

您的瀏覽器不支援畫布元素 請您換成萌萌的谷歌

view code

canvas畫素操作

獲得乙個包含畫布場景畫素資料的imagedata對像,它代表了畫布區域的物件資料 ctx.getimagedata sx,sy,sw,sh sx 將要被提取的影象資料矩形區域的左上角 x 座標。sy 將要被提取的影象資料矩形區域的左上角 y 座標。sw 將要被提取的影象資料矩形區域的寬度。sh 將要...

canvas畫素操作函式封裝

傳入乙個imagedata物件,x軸的座標,y軸的座標 function getpxinfo imgdata,x,y 獲取某個畫素呼叫函式 示例 var imgdata ctx.getimagedata 0,0,canvas.width,canvas.height 獲取 49,49 的畫素的rgba...

canvas學習筆記八 畫素操作

imagedata物件包含了乙個區域內的canvas的畫素資訊。它包含以下可讀屬性 width canvas的寬度,單位是畫素。height canvas的高度,單位是畫素。data 乙個uint8clampedarray的一維陣列,包含了每個畫素的rgba值。什麼是uint8clampedarra...