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

首頁 > 開發 > HTML5 > 正文

Canvas系列之濾鏡效果

2024-09-05 07:22:48
字體:
來源:轉載
供稿:網友

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 獲取到圖片的像素信息,而獲取這些信息可以通過 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第二次繪制圖片-灰度效果

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

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

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

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

參考文獻:

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
两个人的视频www国产精品| 亚洲欧美变态国产另类| 国产va免费精品高清在线观看| 亚洲乱码一区二区| 欧美三级免费观看| 一区二区三区日韩在线| 久久久人成影片一区二区三区观看| 亚洲精品动漫100p| 欧美精品久久久久久久免费观看| 国产亚洲美女久久| 日韩在线欧美在线| 97精品一区二区三区| 日韩av一区二区在线观看| 亚洲色图校园春色| 久久免费观看视频| 7777免费精品视频| 久久久久久中文字幕| 国产精品亚洲网站| 亚洲www永久成人夜色| 最近中文字幕mv在线一区二区三区四区| 亚洲xxxx妇黄裸体| 久久国产精品偷| 日本午夜在线亚洲.国产| 91精品国产自产91精品| 2019中文在线观看| 81精品国产乱码久久久久久| 美日韩丰满少妇在线观看| 亚洲欧美激情一区| 久久91超碰青草是什么| 国产精品日本精品| 久久影院资源网| 久热精品视频在线观看| 4p变态网欧美系列| 亚洲美女免费精品视频在线观看| 国产97在线|亚洲| 国产91色在线免费| 日韩中文在线观看| 国产精品大片wwwwww| 欧美裸体xxxxx| 欧美日韩国产中文字幕| 国产丝袜一区二区三区免费视频| 播播国产欧美激情| 97成人精品区在线播放| 国产精品福利片| 国产精品三级久久久久久电影| 欧美一区二区大胆人体摄影专业网站| 中文字幕免费精品一区| 亚洲成人中文字幕| 91免费在线视频网站| 欧美电影免费观看大全| 91精品国产自产在线| 91在线视频一区| 91精品视频专区| 91亚洲午夜在线| 精品无码久久久久久国产| 亚洲欧美日韩一区在线| 亚洲精品中文字| 久久久久女教师免费一区| 不卡av电影在线观看| 国产精品入口免费视| 九九久久精品一区| 国产mv久久久| 欧美大片va欧美在线播放| 久久亚洲综合国产精品99麻豆精品福利| 亚洲国内精品在线| 国产精品视频大全| 亚洲欧美日韩精品久久亚洲区| 日韩成人激情视频| 免费91麻豆精品国产自产在线观看| 亚洲午夜色婷婷在线| 日韩精品在线免费| 日韩美女毛茸茸| 国产a∨精品一区二区三区不卡| 中文字幕自拍vr一区二区三区| 欧美精品制服第一页| 欧美大片在线看免费观看| 欧美成在线观看| 国产精品99久久久久久久久| 91亚洲一区精品| 国产精品一区二区三区成人| 中文字幕一精品亚洲无线一区| 日韩免费不卡av| 国产精品久久一区| 欧美激情中文字幕乱码免费| 亚洲国产小视频| 亚洲欧美日韩天堂一区二区| 91精品啪aⅴ在线观看国产| 91精品久久久久| 国产成人高潮免费观看精品| 亚洲一区二区久久久| 亚洲最大福利网站| 成人免费淫片视频软件| 精品欧美国产一区二区三区| 91精品视频播放| 精品成人av一区| 国产激情综合五月久久| 在线观看日韩视频| 高清一区二区三区日本久| 国产精品久久久久久久久久久久久| 亚洲欧美国产va在线影院| 久久青草精品视频免费观看| 精品动漫一区二区| 欧美肥婆姓交大片| 精品国产依人香蕉在线精品| 亚洲国产欧美一区二区丝袜黑人| 亚洲精品一区av在线播放| 奇米四色中文综合久久| 国产精品直播网红| 日韩精品中文在线观看| 在线日韩中文字幕| 欧美黑人视频一区| 亚洲人成网站色ww在线| 日韩免费在线视频| 国产精品久久久久久超碰| 色老头一区二区三区在线观看| 亚洲综合色激情五月| 欧美片一区二区三区| 亚洲自拍欧美另类| 亚洲精品www| 国产玖玖精品视频| 91精品国产91久久久久久久久| 日韩中文在线中文网三级| 欧美日韩国产123| 亚洲小视频在线| 中文字幕免费国产精品| 国产一区二区美女视频| 精品视频在线观看日韩| 日韩精品中文字幕在线| 欧美大全免费观看电视剧大泉洋| 精品国产一区二区三区久久| 日韩亚洲欧美成人| 国产婷婷成人久久av免费高清| 日韩欧美在线视频| 九九久久久久99精品| 亚洲欧美中文日韩在线v日本| 亚洲精品国精品久久99热一| 九九久久久久99精品| 欧美日韩国产成人| 欧洲成人免费视频| 78色国产精品| 国产日韩换脸av一区在线观看| 中文字幕少妇一区二区三区| 国产免费亚洲高清| 亚洲欧洲在线视频| 欧美日韩国产中文字幕| 91在线观看免费高清| 俺去亚洲欧洲欧美日韩| 亚洲第一视频网| 精品亚洲aⅴ在线观看| 日韩av手机在线观看| 岛国av一区二区在线在线观看| 国产一区二区三区精品久久久| 欧美巨猛xxxx猛交黑人97人| 国产精品一区二区三| 亚洲天堂色网站| 久久伊人精品视频| 欧美做受高潮1| 欧美日韩国产一区在线| 亚洲第一精品福利| 国产精品va在线播放我和闺蜜| 丝袜亚洲欧美日韩综合| 91国偷自产一区二区三区的观看方式| 在线日韩日本国产亚洲| 欧美成人免费一级人片100|