亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

Canvas系列之濾鏡效果

2024-08-26 00:21:19
字體:
來源:轉載
供稿:網友

Canvas 真的是一個神奇的東西,不僅能夠繪制各種圖形、文本和位圖,還能夠對位圖進行復雜的像素運算和處理。因此像濾鏡這些東西,其實 Canvas 也可以來實現。接下來,是見證奇跡的時刻。

首先,我們需要有一個 Canvas 容器,例如:

<canvas id="myCanvas" width="800" height="800"></canvas>

接下來,我們需要將使用 Canvas 來繪制一張圖片:

 

 

var myCanvas = document.getElementById("myCanvas");var ctx = myCanvas.getContext("2d");var img = new Image();img.src = "./images/1526010092000.jpg";	// 自備圖片鏈接img.onload = (e) => {	ctx.drawImage(img, 0, 0, 800, 800);	// 第一個800表示繪制圖片的寬,第二個800表示繪制圖片的高}

Canvas,濾鏡

Canvas首次繪制的效果

再接下來就是對圖片的像素進行一些操作。而要實現這樣的操作,首先需要從 Canvas 獲取到圖片的像素信息,而獲取這些信息可以通過 getImageData() 來實現。

// ... 省略前面代碼img.onload = (e) => {	// ... 省略前面代碼    img = ctx.getImageData(0, 0, 800, 800);	// 獲得包含每個像素點顏色的字節數據}

由于圖片的大小為 800 * 800,因為要對像素點進行遍歷,以獲得每一個像素點的紅、綠、藍色值。因此:

// ... 省略前面代碼img.onload = (e) => {	// ... 省略前面代碼    var pixelLen = 800 * 800;   // 獲得像素個數    for(var i = 0; i < pixelLen * 4; i += 4) {        var redC = img.data[i], // 第一個字節單位代表紅色            greenC = img.data[i + 1],    // 第二個字節單位代表綠色            blueC = img.data[i + 2],   // 第三個字節單位代表藍色            alpha = img.data[i + 3];   // 第四個字節單位代表透明度    }}

通過上面循環,我們獲取到了包含在圖片數據中的每個像素點的具體色值;需要注意的一點是,每一個像素點的數據不是一位,而是相鄰的四位,分別代表了該點的紅、綠、藍和透明值。因此,實際上位圖字節數據的數組長度等于像素點個數乘以 4,在 for 循環中我們也針對這一特性進行了相應處理。

通過將每一點的紅、綠、藍值進行平均,然后再將生成的平均值相同地賦予該像素點的紅、綠、藍值,就能形成灰度效果,最后通過 putImageData() 方法來重新繪制圖片即可,代碼如下:

// ... 省略前面代碼img.onload = (e) => {	// ... 省略前面代碼    for(var i = 0; i < pixelLen * 4; i += 4) {   		// ... 省略前面代碼        var grey = parseInt((redC + greenC + blueC) / 3);  // 平均后獲取灰度值        img.data[i] = grey; // 改變紅色值        img.data[i + 1] = grey; // 改變綠色值        img.data[i + 2] = grey; // 改變藍色值    }    ctx.putImageData(img, 0, 0, 800, 800);  // 重新繪制圖片} 

此時,則會形成灰度效果,如下圖

 

 
Canvas,濾鏡

 

Canvas第二次繪制圖片-灰度效果

透明度的控制只需要修改第四個字節單位對應的數值即可,該數值的范圍為0~256,0代表完全透明,256代表完成不透明。例如:

 

 

// ... 省略前面代碼img.onload = (e) => {	// ... 省略前面代碼    for(var i = 0; i < pixelLen * 4; i += 4) {   		// ... 省略前面代碼        img.data[i + 3] = 128;	// 透明度50%    }    // ... 省略前面代碼} 

Canvas,濾鏡

Canvas第三次繪制效果-增加透明度

由此,通過控制圖片中每個像素4個數據的值,即可達到濾鏡的效果,是不是 so easy!

參考文獻:

HTML5 基礎知識、核心技術與前沿案例》 劉歡 編著

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美与黑人午夜性猛交久久久| 欧美精品在线第一页| 国产美女久久精品香蕉69| 97超碰国产精品女人人人爽| 高清欧美性猛交xxxx黑人猛交| 欧美性猛交xxxx久久久| 91tv亚洲精品香蕉国产一区7ujn| www.日韩欧美| 国产精品va在线播放我和闺蜜| 92裸体在线视频网站| 色综合色综合网色综合| 久久精品色欧美aⅴ一区二区| 97欧美精品一区二区三区| 亚洲国产又黄又爽女人高潮的| 欧美高清视频一区二区| 欧美电影免费在线观看| 国产亚洲精品久久久久久| 国产精品久久91| 91视频免费在线| 成人免费xxxxx在线观看| 亚洲综合一区二区不卡| 国产97在线|日韩| 国内成人精品一区| 亚洲性视频网址| 日韩精品视频在线免费观看| 久久国产精品视频| 欧美激情伊人电影| 日韩av理论片| 久久久久久久一区二区| 日韩精品久久久久久久玫瑰园| 懂色aⅴ精品一区二区三区蜜月| 国产精品99久久久久久人| 国产成人自拍视频在线观看| 欧美激情第三页| 久久中文字幕国产| 亚洲欧美中文在线视频| 亚洲天堂第二页| 亚洲精选一区二区| 性色av一区二区三区在线观看| 久久久久久久久久国产精品| 国产精品久久久久久久久久免费| 欧美国产亚洲视频| 97精品国产97久久久久久春色| 国色天香2019中文字幕在线观看| 国产精品嫩草影院一区二区| 在线亚洲国产精品网| 欧美午夜宅男影院在线观看| 在线观看国产成人av片| 91地址最新发布| 一区二区av在线| 亚洲日本中文字幕| 欧美电影在线免费观看网站| 亚洲男人天堂古典| 欧美日韩xxx| 国产欧亚日韩视频| 草民午夜欧美限制a级福利片| 欧美寡妇偷汉性猛交| 亚洲aa中文字幕| 亚洲影视九九影院在线观看| 日韩av三级在线观看| 不卡伊人av在线播放| 98视频在线噜噜噜国产| 狠狠操狠狠色综合网| 日韩av电影在线免费播放| 777午夜精品福利在线观看| 国产美女精品视频免费观看| 九九精品视频在线观看| 欧美精品久久久久久久久| 欧美日韩美女在线观看| 日韩在线观看免费网站| 成人在线激情视频| 亚洲护士老师的毛茸茸最新章节| 久久久久久久久久久成人| 国产精品视频999| 亚洲欧美综合区自拍另类| 久久久久一本一区二区青青蜜月| 久久精品国产成人精品| 亚洲精品日韩激情在线电影| 欧美国产日韩一区二区在线观看| 国产精品黄页免费高清在线观看| 国产精品久久久久福利| 18一19gay欧美视频网站| 国产日韩欧美在线观看| 欧美亚洲视频在线看网址| 亚洲一区二区久久久| 亚洲国产精品久久久久久| 97精品国产97久久久久久免费| 中文字幕亚洲欧美日韩在线不卡| 亚洲精品国产精品国自产在线| 欧美一区二区三区精品电影| 欧美性猛交xxxx免费看| 91经典在线视频| 2019亚洲日韩新视频| 亚洲国内精品在线| 亚洲第一色在线| 中文字幕精品久久久久| 成人国产精品日本在线| 亚洲欧美日韩综合| 成人免费在线网址| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩在线视频免费观看| 久久影院免费观看| 91亚洲精品久久久| 亚洲午夜精品久久久久久久久久久久| 国产精品久久一区| 亚洲高清久久网| 亚洲热线99精品视频| 在线观看久久久久久| 成人妇女免费播放久久久| 亚洲春色另类小说| 国产精品无码专区在线观看| 91久久久久久久久| 一区二区三区精品99久久| 日韩精品免费电影| 琪琪第一精品导航| 亚洲精品欧美一区二区三区| 91高清视频免费观看| 亚洲精品成人久久电影| 精品视频久久久| 欧美色播在线播放| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品视频xxxx| 91热福利电影| 欧美最顶级的aⅴ艳星| 国产在线观看一区二区三区| 欧美尺度大的性做爰视频| 国产精品美女免费视频| 亚洲人成网站免费播放| 久久香蕉国产线看观看网| 欧美另类高清videos| 午夜精品理论片| 日韩视频亚洲视频| 亚洲片国产一区一级在线观看| 精品日韩美女的视频高清| 欧美综合在线观看| 亚洲天堂日韩电影| 国产精品偷伦免费视频观看的| 亚洲大胆人体在线| 欧美专区国产专区| 爽爽爽爽爽爽爽成人免费观看| 日韩精品视频在线观看网址| 欧美性xxxx极品高清hd直播| 深夜福利国产精品| 91精品国产91久久久久| 国产精品成人aaaaa网站| 国产亚洲精品久久久久久牛牛| 中文字幕在线视频日韩| 久久久久久香蕉网| 亚洲欧洲xxxx| 欧美日韩精品在线播放| 久久国内精品一国内精品| 国产在线观看一区二区三区| 久久精品国产69国产精品亚洲| 国产成人精品在线播放| 国产精品扒开腿做| x99av成人免费| 黄色精品一区二区| 久久天天躁狠狠躁夜夜爽蜜月| 欧美高清视频一区二区| 成人欧美在线观看| 91中文字幕在线| 国模私拍一区二区三区| 91大神福利视频在线| 26uuu久久噜噜噜噜|