知识大全 纯JavaScript实现HTML5 Canvas六种特效滤镜示例

Posted

篇首语:别裁伪体亲风雅,转益多师是汝师。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 纯JavaScript实现HTML5 Canvas六种特效滤镜示例相关的知识,希望对你有一定的参考价值。

纯JavaScript实现HTML5 Canvas六种特效滤镜示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

实现了六款简单常见HTML Canvas特效滤镜 并且封装成一个纯JavaScript可调用的API文件gloomyfishfilter js 程序源代码如下 感兴趣的朋友可以参考下哈  

  小试牛刀 实现了六款简单常见HTML Canvas特效滤镜 并且封装成一个纯JavaScript可调用的API文件gloomyfishfilter js 支持的特效滤镜分别为 反色 灰色调 模糊 浮雕 雕刻 镜像 滤镜原理解释 反色 获取一个像素点RGB值r g b则新的RGB值为( r g b) 灰色调 获取一个像素点RGB值r g b则新的RGB值为

复制代码 代码如下: newr = (r * ) + (g * ) + (b * ); newg = (r * ) + (g * ) + (b * ); newb = (r * ) + (g * ) + (b * );

   模糊 基于一个 * 的卷积核 浮雕与雕刻 基于当前像素的前一个像素RGB值与它的后一个像素的RGB值之差再加上 镜像 模拟了物体在镜子中与之对应的效果 杂项准备 如何获取Canvas d 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 HTML patible browser "); return; // get D context of canvas and draw image tempContext = canvas getContext(" d");

   如何绘制一个DOM img对象到Canvas对象中

复制代码 代码如下: var source = document getElementById("source"); tempContext drawImage(source canvas width canvas height);

   如何从Canvas对象中获取像素数据

复制代码 代码如下: var canvas = document getElementById("target"); varlen = canvas width * canvas height * ; var canvasData = tempContext getImageData( canvas width canvas height); var binaryData = canvasData data;

   如何对DOM对象实现鼠标Click事件绑定

复制代码 代码如下: function bindButtonEvent(element type handler) if(element addEventListener) element addEventListener(type handler false); else element attachEvent( on +type handler);// for IE

   如何调用实现的gfilter API完成滤镜功能

复制代码 代码如下: <scriptsrc="gloomyfishfilter js"></script> //导入API文件 gfilter colorInvertProcess(binaryData len); //调用 API

   浏览器支持 IE FF Chrome上测试通过 其中IE上支持通过以下标签实现

复制代码 代码如下: <meta equiv="X UA Compatible"content="chrome=IE ">

   效果演示

>

   应用程序源代码 CSS部分

复制代码 代码如下: #svgContainer width: px; height: px; background color:#EEEEEE; #sourceDiv float: left; border: px solid blue #targetDiv float: right;border: px solid red

   filter 中HTML源代码

复制代码 代码如下: <!DOCTYPE > <> <head> <meta equiv="X UA Compatible" content="chrome=IE "> <meta equiv="Content type" content="text/;charset=UTF "> <title>Canvas Filter Demo</title> <link href="default css" rel="stylesheet" /> <script src=gloomyfishfilter js></scrip> </head> <body> <h >HTML Canvas Image Process By Gloomy Fish</h > <div id="svgContainer"> <div id="sourceDiv"> <img id="source" src= /test png /> </div> <div id="targetDiv"> <canvas id="target"></canvas> </div> </div> <div id="btn group"> <button type=button id="invert button">反色</button> <button type=button id="adjust button">灰色调</button> <button type=button id="blur button">模糊</button> <button type=button id="relief button">浮雕</button> <button type=button id="diaoke button">雕刻</button> <button type=button id="mirror button">镜像</button> </div> </body> </>

   filter 中JavaScript源代码

复制代码 代码如下: var tempContext = null; // global variable d context window onload = function() var source = document getElementById("source"); var canvas = document getElementById("target"); canvas width = source clientWidth; canvas height = source clientHeight; if (!canvas getContext) console log("Canvas not supported Please install a HTML patible browser "); return; // get D context of canvas and draw image tempContext = canvas getContext(" d"); tempContext drawImage(source canvas width canvas height); // initialization actions var inButton = document getElementById("invert button"); var adButton = document getElementById("adjust button"); var blurButton = document getElementById("blur button"); var reButton = document getElementById("relief button"); var dkButton = document getElementById("diaoke button"); var mirrorButton = document getElementById("mirror button"); // bind mouse click event bindButtonEvent(inButton "click" invertColor); bindButtonEvent(adButton "click" adjustColor); bindButtonEvent(blurButton "click" blurImage); bindButtonEvent(reButton "click" fudiaoImage); bindButtonEvent(dkButton "click" kediaoImage); bindButtonEvent(mirrorButton "click" mirrorImage); function bindButtonEvent(element type handler) if(element addEventListener) element addEventListener(type handler false); else element attachEvent( on +type handler); // for IE function invertColor() var canvas = document getElementById("target"); var len = canvas width * canvas height * ; var canvasData = tempContext getImageData( canvas width canvas height); var binaryData = canvasData data; // Processing all the pixels gfilter colorInvertProcess(binaryData len); // Copying back canvas data to canvas tempContext putImageData(canvasData ); function adjustColor() var canvas = document getElementById("target"); var len = canvas width * canvas height * ; var canvasData = tempContext getImageData( canvas width canvas height); var binaryData = canvasData data; // Processing all the pixels gfilter colorAdjustProcess(binaryData len); // Copying back canvas data to canvas tempContext putImageData(canvasData ); function blurImage() var canvas = document getElementById("target"); var len = canvas width * canvas height * ; var canvasData = tempContext getImageData( canvas width canvas height); // Processing all the pixels gfilter blurProcess(tempContext canvasData); // Copying back canvas data to canvas tempContext putImageData(canvasData ); function fudiaoImage() var canvas = document getElementById("target"); var len = canvas width * canvas height * ; var canvasData = tempContext getImageData( canvas width canvas height); // Processing all the pixels gfilter reliefProcess(tempContext canvasData); // Copying back canvas data to canvas tempContext putImageData(canvasData ); function kediaoImage() var canvas = document getElementById("target"); var len = canvas width * canvas height * ; var canvasData = tempContext getImageData( canvas width canvas height); // Processing all the pixels gfilter diaokeProcess(tempContext canvasData); // Copying back canvas data to canvas tempContext putImageData(canvasData ); function mirrorImage() var canvas = document getElementById("target"); var len = canvas width * canvas height * ; var canvasData = tempContext getImageData( canvas width canvas height); // Processing all the pixels gfilter mirrorProcess(tempContext canvasData); // Copying back canvas data to canvas tempContext putImageData(canvasData );

   滤镜源代码(gloomyfishfilter js)

复制代码 代码如下: cha138/Article/program/Java/JSP/201311/20416

相关参考

知识大全 javascript和HTML5利用canvas构建猜牌游戏实现算法

javascript和HTML5利用canvas构建猜牌游戏实现算法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 Javascript和HTML5利用canvas构建Web五子棋游戏实现算法

Javascript和HTML5利用canvas构建Web五子棋游戏实现算法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让

玉米杂交制种保纯六措施

玉米杂交种质量的好坏,直接影响到新品种的推广以及育种单位的经济效益。为避免发生种子质量事故,在玉米杂交制种过程中,防杂保纯成为一项关键的内容。确保亲本自交系纯度:要选用来源可靠、纯度高的自交系。严格去

玉米杂交制种保纯六措施

玉米杂交种质量的好坏,直接影响到新品种的推广以及育种单位的经济效益。为避免发生种子质量事故,在玉米杂交制种过程中,防杂保纯成为一项关键的内容。确保亲本自交系纯度:要选用来源可靠、纯度高的自交系。严格去

知识大全 四只纯野生草龟2.5斤,2.3斤,4两,3两值多少钱

四只纯野生草龟2.5斤,2.3斤,4两,3两值多少钱?谢谢!三两四两的估计六十一只左右两斤到两斤半的估计两百三左右一只两斤似的野生草龟多少钱一斤?墨化的公龟可以到160-200一斤,不过一般不会有这么

知识大全 为何h5edu教育培训的学费小两万,而有的机构就很便宜呢

为何h5edu教育培训的学费小两万,而有的机构就很便宜呢?纯H5包括了很多种技术,例如CSS3、canvas等,而便宜的机构大多数都给省去了,这其中有很大的猫腻。h5edu教育培训的核心是哪个方面的?

瀑布线概念

瀑布线概念瀑布线是由均线系统优化得来的趋势性指标,因其在运行的过程中,形态与瀑布极其相似,故得名为瀑布线。瀑布线属于传统大纯价格趋势线,它的真正名称叫做非线性加权移动平均线,是由六条非线性加权移动平均

年缴纯保险费的计算

年缴纯保险费的计算年缴纯保险费的计算包括:定期死亡保险年缴纯保险费、定期生存保险年缴纯保险费、终身寿险的年缴纯保险费、两全保险的年缴纯保险费的计算。假定A为各类保险的趸缴纯保费,P为年缴纯保费,由于P

趸缴纯保险费的计算

趸缴纯保险费的计算趸缴纯保险费的计算主要包括:定期死亡保险趸缴纯保险费、定期生存保险的趸缴纯保险费、终身寿险的趸缴纯保险费、定期年金保险趸缴纯保险费的计算。1.定期死亡保险趸缴纯保险费的计算定期死亡保

均衡纯保费的计算

均衡纯保费的计算均衡纯保费的计算:根据等值方程可知,对保额、保险期限确定的同一险种来说,趸缴纯保费的精算现值与均衡纯保费的精算现值应相等,都等于保额的精算现值,所以我们可以利用已求出的趸缴纯保费来计算