Canvas學(xué)習(xí)筆記之像素

Canvas 學(xué)習(xí)筆記之像素操作 -- by Damon

像素操作

ctx.createImageData(width, height) 
ctx.createImageData(anotherImageData)
ctx.getImageData(x, y, w, h)
// (x, y) => start point
// (w, h) => width and height 
ctx.putImageData(myImageData, x, y)
// (x, y) => destination position

ImageData 對(duì)象
width: Number
height: Number
data: Array 0, 1, 2, 3 => 每四個(gè)一組表示rgba

應(yīng)用: ctx.getImageData(x, y, 1, 1) => 就可以獲取某個(gè)點(diǎn)點(diǎn)色值

高級(jí)應(yīng)用-圖片灰度和反相

Paste_Image.png
Paste_Image.png
function invert(data) {
  for (var i = 0; i < data.length; i += 4) {
    data[i] = 255 - data[i];
    data[i + 1] = 255 - data[i + 1];
    data[i + 2] = 255 - data[i + 2];
  }
  return data;
}

var grayscale = function(data) {
  for (var i = 0; i < data.length; i += 4) {
    var avg = (data[i] + data[i +1] + data[i +2]) / 3;
    data[i]     = avg; // red
    data[i + 1] = avg; // green
    data[i + 2] = avg; // blue
  }
  return data;
};

ImageData.data => Uint8ClampedArray 0~255整型的數(shù)組
參考鏈接

代碼地址
Demo地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容