最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
純JavaScript實現(xiàn)HTML5Canvas六種特效濾鏡

純JavaScript實現(xiàn)HTML5 Canvas六種特效濾鏡 

創(chuàng)新互聯(lián)主要從事網(wǎng)站建設、成都網(wǎng)站設計、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務鳳臺,10年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575

小試牛刀,實現(xiàn)了六款簡單常見HTML5 Canvas特效濾鏡,并且封裝成一個純

JavaScript可調(diào)用的API文件gloomyfishfilter.js。支持的特效濾鏡分別為:

1.      反色

2.      灰色調(diào)

3.      模糊

4.      浮雕

5.      雕刻

6.      鏡像

濾鏡原理解釋:

1.      反色:獲取一個像素點RGB值r, g, b則新的RGB值為(255-r, 255-g, 255-b)

2.      灰色調(diào):獲取一個像素點RGB值r, g, b則新的RGB值為

          newr = (r * 0.272) + (g * 0.534) + (b * 0.131);

          newg = (r * 0.349) + (g * 0.686) + (b * 0.168);

          newb = (r * 0.393) + (g * 0.769) + (b * 0.189);

3.      模糊:基于一個5*5的卷積核

4.      浮雕與雕刻:

         基于當前像素的前一個像素RGB值與它的后一個像素的RGB值之差再加上128

5.      鏡像:模擬了物體在鏡子中與之對應的效果。

雜項準備

1.        如何獲取Canvas 2d context對象

var canvas = document.getElementById("target");

canvas.width = source.clientWidth;

canvas.height = source.clientHeight;

if(!canvas.getContext) {

   console.log("Canvas not supported. Please install a HTML5compatible browser.");

   return;

}

// get 2D context of canvas and draw image

tempContext = canvas.getContext("2d");


2.        如何繪制一個DOM img對象到Canvas對象中

var source = document.getElementById("source");

tempContext.drawImage(source, 0, 0, canvas.width,canvas.height);

3.        如何從Canvas對象中獲取像素數(shù)據(jù)

var canvas = document.getElementById("target");

varlen = canvas.width * canvas.height * 4;

var canvasData = tempContext.getImageData(0, 0, canvas.width, canvas.height);

var binaryData = canvasData.data;

4.        如何對DOM對象實現(xiàn)鼠標Click事件綁定

function bindButtonEvent(element, type, handler) 

if(element.addEventListener){ 

      element.addEventListener(type, handler,false); 

   }else

      element.attachEvent('on'+type, handler);// for IE6,7,8

   } 

}

5.        如何調(diào)用實現(xiàn)的gfilter API完成濾鏡功能

"gloomyfishfilter.js"> //導入API文件

gfilter.colorInvertProcess(binaryData, len); //調(diào)用 API


6.        瀏覽器支持:IE, FF, Chrome上測試通過,其中IE上支持通過以下標簽實現(xiàn):

"X-UA-Compatible"content="chrome=IE8"

效果演示:

純JavaScript實現(xiàn)HTML5 Canvas六種特效濾鏡

應用程序源代碼:

CSS部分:

#svgContainer { 	width:800px; 	height:600px; 	background-color:#EEEEEE; }           #sourceDiv { float: left; border: 2px solid blue}  #targetDiv { float: right;border: 2px solid red} 
filter1.html中HTML源代碼:

     Canvas Filter Demo