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

首頁 > 網站 > WEB開發 > 正文

canvas-濾鏡效果

2024-04-27 15:08:17
字體:
來源:轉載
供稿:網友
<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>canvas-濾鏡</title>    <style>        canvas{            border: 1px solid red;            float: left;            /* background-color:red; */        }    </style></head><body>    <canvas id="oldCanvas" width="500px" height="300px">    </canvas>    <canvas id="nowCanvas" width="500px" height="300px">    </canvas>    <button onclick = "copy2()">底片效果</button><br>    <button onclick = "copy3()">黑白效果</button><br>    <button onclick = "copy4()">浮雕效果</button><br>    <button onclick = "copy1()">灰色濾鏡</button><br>    <button onclick = "copy5()">綠色濾鏡</button><br>    <button onclick = "copy6()">藍色濾鏡</button><br>    <button onclick = "copy7()">紅色濾鏡</button><br>    <button onclick = "copy8()">黃色濾鏡</button><br>    <button onclick = "copy9()">紫色濾鏡</button><br>    <button onclick = "copy10()">青色濾鏡</button><br>    <script>        //獲取到canvas元素        var oldcanvas = document.getElementById('oldCanvas');        //獲取canvas中的畫圖環境        var oldcontext = oldcanvas.getContext('2d');        //獲取到canvas元素        var nowcanvas = document.getElementById('nowCanvas');        //獲取canvas中的畫圖環境        var nowcontext = nowcanvas.getContext('2d');        var img = new Image();        img.src = "./image/liuyifei.jpg";        window.onload = function (){            //繪制圖像            oldcontext.drawImage(img,0,0,oldcanvas.width,oldcanvas.height);            copy1();        };        //灰度效果        function copy1(){            //獲取ImageData的屬性:width,height,data(包含 R G B A 四個值);            var imgdata = oldcontext.getImageData(0,0,oldcanvas.width,oldcanvas.height);            for(var i=0;i<imgdata.data.length;i += 4){                //計算獲取單位元素的RBG然后取平均值 然后復制給自身得到灰色的圖像                var avg =  (imgdata.data[i]+ imgdata.data[i+1]+ imgdata.data[i+2])/3;                imgdata.data[i] =avg;                imgdata.data[i+1] =avg;                imgdata.data[i+2] =avg;            }            //將圖像信息繪制第二個canvas中,注:一般只能在服務下運行            nowcontext.putImageData(imgdata,0,0);        }        //底片效果        function copy2(){            //獲取ImageData的屬性:width,height,data(包含 R G B A 四個值);            var imgdata = oldcontext.getImageData(0,0,oldcanvas.width,oldcanvas.height);            for(var i=0;i<imgdata.data.length;i += 4){                //將所有的RGB值重新賦值(底片效果 = 255 - 當前的RGB值)                imgdata.data[i] =255-imgdata.data[i];                imgdata.data[i+1] =255-imgdata.data[i+1];                imgdata.data[i+2] =255-imgdata.data[i+2];            }            //將圖像信息繪制第二個canvas中,注:一般只能在服務下運行            nowcontext.putImageData(imgdata,0,0);        }        //黑白效果        function copy3(){            //獲取ImageData的屬性:width,height,data(包含 R G B A 四個值);            var imgdata = oldcontext.getImageData(0,0,oldcanvas.width,oldcanvas.height);            for(var i=0;i<imgdata.data.length;i += 4){                //計算獲取單位元素的RBG然后取平均值                var avg =  (imgdata.data[i]+ imgdata.data[i+1]+ imgdata.data[i+2])/3;                imgdata.data[i] =avg>128 ? 255 :0;                imgdata.data[i+1] =avg>128 ? 255 :0;                imgdata.data[i+2] =avg>128 ? 255 :0;            }            //將圖像信息繪制第二個canvas中,注:一般只能在服務下運行            nowcontext.putImageData(imgdata,0,0);        }        //浮雕效果        function copy4(){            //獲取ImageData的屬性:width,height,data(包含 R G B A 四個值);            var imgdata = oldcontext.getImageData(0,0,oldcanvas.width,oldcanvas.height);            for(var i=0;i<imgdata.data.length;i += 4){                //浮雕效果的算法:當前RGB減去相鄰的GRB得到的值再加上128                imgdata.data[i] =imgdata.data[i]-imgdata.data[i+4]+128;                imgdata.data[i+1] =imgdata.data[i+1]-imgdata.data[i+5]+128;                imgdata.data[i+2] =imgdata.data[i+2]-imgdata.data[i+6]+128;                //計算獲取單位元素的RBG然后取平均值  再次灰度,優化浮雕的效果                var avg =  (imgdata.data[i]+ imgdata.data[i+1]+ imgdata.data[i+2])/3;                imgdata.data[i] =avg;                imgdata.data[i+1] =avg;                imgdata.data[i+2] =avg;            }            //將圖像信息繪制第二個canvas中,注:一般只能在服務下運行            nowcontext.putImageData(imgdata,0,0);        }        //綠色濾鏡        function copy5(){            //獲取ImageData的屬性:width,height,data(包含 R G B A 四個值);            var imgdata = oldcontext.getImageData(0,0,oldcanvas.width,oldcanvas.height);            for(var i=0;i<imgdata.data.length;i += 4){                //綠色濾鏡的算法:當前綠色通道值G*1.4得到綠色濾鏡                var g =imgdata.data[i+1]*1.4;                //注:當前值大于255時將其賦值255                imgdata.data[i+1] =g>255 ? 255 : g;            }            //將圖像信息繪制第二個canvas中,注:一般只能在服務下運行            nowcontext.putImageData(imgdata,0,0);        }        //藍色濾鏡        function copy6() {            //獲取ImageData的屬性:width,height,data(包含 R G B A 四個值);            var imgdata = oldcontext.getImageData(0, 0, oldcanvas.width, oldcanvas.height);            for (var i = 0; i < imgdata.data.length; i += 4) {                //藍色濾鏡的算法:當前藍色通道值變為原來的1.6得到藍色濾鏡                var b = imgdata.data[i + 2] * 1.6;                //注:當前值大于255時將其賦值255                imgdata.data[i + 2] = b > 255 ? 255 : b;            }            //將圖像信息繪制第二個canvas中,注:一般只能在服務下運行            nowcontext.putImageData(imgdata,0,0);        }        //紅色濾鏡        function copy7() {            //獲取ImageData的屬性:width,height,data(包含 R G B A 四個值);            var imgdata = oldcontext.getImageData(0, 0, oldcanvas.width, oldcanvas.height);            for (var i = 0; i < imgdata.data.length; i += 4) {                //紅色濾鏡的算法:當前紅色通道值變為原來的2得到紅色濾鏡                var r = imgdata.data[i] * 2;                //注:當前值大于255時將其賦值255                imgdata.data[i] = r > 255 ? 255 : r;            }            //將圖像信息繪制第二個canvas中,注:一般只能在服務下運行            nowcontext.putImageData(imgdata,0,0);        }        //黃色濾鏡        function copy8() {            //獲取ImageData的屬性:width,height,data(包含 R G B A 四個值);            var imgdata = oldcontext.getImageData(0, 0, oldcanvas.width, oldcanvas.height);            for (var i = 0; i < imgdata.data.length; i += 4) {                //黃色濾鏡的算法:紅色通道值和綠色通道值增加50(紅色+綠色 = 黃色)                var r = imgdata.data[i] +50;                var g = imgdata.data[i+1] +50                //注:當前值大于255時將其賦值255                imgdata.data[i] = r > 255 ? 255 : r;                imgdata.data[i+1] = g > 255 ? 255 : g;            }            //將圖像信息繪制第二個canvas中,注:一般只能在服務下運行            nowcontext.putImageData(imgdata,0,0);        }        //紫色濾鏡        function copy9() {            //獲取ImageData的屬性:width,height,data(包含 R G B A 四個值);            var imgdata = oldcontext.getImageData(0, 0, oldcanvas.width, oldcanvas.height);            for (var i = 0; i < imgdata.data.length; i += 4) {                //紫色濾鏡的算法:紅色通道值和藍色通道值增加50(紅色+藍色 = 紫色)                var r = imgdata.data[i] +50;                var b = imgdata.data[i+2] +50                //注:當前值大于255時將其賦值255                imgdata.data[i] = r > 255 ? 255 : r;                imgdata.data[i+2] = b > 255 ? 255 : b;            }            //將圖像信息繪制第二個canvas中,注:一般只能在服務下運行            nowcontext.putImageData(imgdata,0,0);        }        //青色濾鏡        function copy10() {            //獲取ImageData的屬性:width,height,data(包含 R G B A 四個值);            var imgdata = oldcontext.getImageData(0, 0, oldcanvas.width, oldcanvas.height);            for (var i = 0; i < imgdata.data.length; i += 4) {                //青色濾鏡的算法:綠色通道值和藍色通道值增加50(綠色+藍色 = 青色)                var g = imgdata.data[i+1] +50;                var b = imgdata.data[i+2] +50                //注:當前值大于255時將其賦值255                imgdata.data[i+1] = g > 255 ? 255 : g;                imgdata.data[i+2] = b > 255 ? 255 : b;            }            //將圖像信息繪制第二個canvas中,注:一般只能在服務下運行            nowcontext.putImageData(imgdata,0,0);        }    </script></body></html>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品mp4| 国产美女久久精品| 国产免费一区二区三区在线能观看| 中文字幕精品视频| 国产精品狠色婷| 久久久中精品2020中文| 韩国精品久久久999| 久久999免费视频| 国产欧美韩国高清| 日韩精品在线观看网站| 国内精品久久久久久影视8| 亚洲风情亚aⅴ在线发布| 欧美性色xo影院| 成人写真福利网| 久久伊人精品天天| 九九视频这里只有精品| 狠狠躁夜夜躁人人爽超碰91| 欧美另类69精品久久久久9999| 久久99精品久久久久久噜噜| 中文综合在线观看| 亚洲电影免费观看高清完整版| 日韩二区三区在线| 欧美精品少妇videofree| 91伊人影院在线播放| 日韩在线观看网站| 国产精品美女久久久久久免费| 国产精品爱久久久久久久| 久久精品国产99国产精品澳门| 91精品久久久久久综合乱菊| 欧美中文在线免费| 国产精品v片在线观看不卡| 午夜精品理论片| 久久五月天色综合| 亚洲欧美日韩区| 日韩最新免费不卡| 久久中文字幕视频| 亚洲美女av网站| 亚洲国产日韩精品在线| 欧美激情亚洲国产| 亚洲精品成a人在线观看| 国产精品亚洲综合天堂夜夜| 欧美韩国理论所午夜片917电影| 成人性教育视频在线观看| 国产欧美 在线欧美| 精品国产一区二区三区久久| 日韩成人在线观看| 欧美性生交大片免费| 精品一区二区三区电影| 欧美成人一二三| 欧美午夜丰满在线18影院| 欧美日韩国产中字| 国产精品xxx视频| 亚洲少妇激情视频| 国产亚洲视频在线观看| 亚洲图片欧美日产| 国产精品综合久久久| 亚洲欧洲日产国码av系列天堂| 日韩毛片在线看| 一区二区三区国产视频| 97香蕉久久夜色精品国产| 91精品国产高清自在线| 久久精品夜夜夜夜夜久久| 国产日韩欧美在线看| 欧美在线视频a| 久久人人爽人人爽人人片av高清| 午夜精品久久久久久久99黑人| 国产a∨精品一区二区三区不卡| 69av在线播放| 欧美极品xxxx| 日韩大陆毛片av| 日本sm极度另类视频| 一本一本久久a久久精品牛牛影视| 精品久久久久久电影| 亚洲人成电影网站色| 国产91在线视频| 日韩男女性生活视频| 亚洲精品资源在线| 5278欧美一区二区三区| 性色av一区二区三区红粉影视| 亚洲男女性事视频| 国产成人精品日本亚洲专区61| 亚洲第一在线视频| 91精品国产91久久久| 66m—66摸成人免费视频| 亚洲跨种族黑人xxx| 国产精品日韩专区| 欧美精品电影在线| 亚洲性生活视频在线观看| 久久久久久久电影一区| 欧美午夜视频一区二区| 精品色蜜蜜精品视频在线观看| 欧美性xxxx极品高清hd直播| 伊人伊成久久人综合网站| 亚洲精品999| 成人网在线免费看| 精品久久久久久久久国产字幕| 欧美成人中文字幕| 日韩中文字幕国产| 亚洲永久在线观看| 久久精品99国产精品酒店日本| 国产精品视频久久久久| 中文字幕日韩av电影| 国产一区二区在线免费视频| 亚洲国产精品va在看黑人| 一区二区三区 在线观看视| 青青久久av北条麻妃黑人| 国产精品视频自在线| 色午夜这里只有精品| 久热精品在线视频| 91最新在线免费观看| 久久人人97超碰精品888| 国产成人精品久久亚洲高清不卡| 日本一区二区在线免费播放| 日本精品久久久久久久| 国产精品都在这里| 欧美精品videofree1080p| 欧美一区在线直播| 国产999精品久久久| 激情久久av一区av二区av三区| 亚洲欧美一区二区精品久久久| 久久久久久中文| 在线观看欧美日韩| 国产成人av网| 色狠狠久久aa北条麻妃| 国产91精品久久久久久| 国产极品精品在线观看| 欧美激情精品久久久久久变态| 国产美女搞久久| 国产精品自产拍高潮在线观看| 欧美性xxxx极品高清hd直播| 懂色av中文一区二区三区天美| 久久久久在线观看| 国产精品第1页| 这里只有精品视频在线| 68精品久久久久久欧美| 51视频国产精品一区二区| 国产精品96久久久久久| 亚洲xxxx妇黄裸体| 亚洲高清av在线| 欧美精品videofree1080p| 日韩精品久久久久久福利| 国产精品国模在线| 国产午夜精品全部视频在线播放| 久久久久久高潮国产精品视| 欧美精品久久久久久久免费观看| 久久成人av网站| 久久精品成人欧美大片古装| 久久久噜噜噜久久中文字免| 国内精品模特av私拍在线观看| 亚洲自拍偷拍在线| 欧美亚洲午夜视频在线观看| 亚洲日本欧美日韩高观看| 欧美综合在线观看| 中文字幕日韩欧美| 亚洲美女又黄又爽在线观看| 色噜噜狠狠狠综合曰曰曰| 日韩精品极品在线观看| 欧美区二区三区| 中文字幕在线看视频国产欧美在线看完整| 久久激情视频免费观看| 国产精品精品视频一区二区三区| 日韩欧美成人精品| 日本国产高清不卡| 亚洲v日韩v综合v精品v|