基于HTML5 Canvas实现黑白滤镜
来源:互联网 发布:搜狗拼音打字软件 编辑:程序博客网 时间:2024/05/08 13:32
getImageData
和 putImageData
是 HTML5 Canvas两个比较常用的两个 API。
通过getImageData,可以得到canvas指定区域的像素点数组,每个像素点包含4个字符,分别代表了R、G、B、A这四个分量。修改RGB分量的设置,通过putImageData将修改后的像素点数组写回到canvas中,即可实现各种滤镜效果。
将R、G、B三个分量取平均值,在用这个平均值分别设置R、G、B分量,即可实现黑白滤镜,实现的主要源码如下:
var canvas=document.getElementById("canvas");var context=canvas.getContext("2d");var imageData;var imageDataCopy=context.createImageData(canvas.width, canvas.height); function copyCanvasPixels(){ for(var i=0; i<imageData.data.length-4; i=i+4){ average=(imageData.data[i]+imageData.data[i+1]+imageData.data[i+2])/3; imageDataCopy.data[i]=average; imageDataCopy.data[i+1]=average; imageDataCopy.data[i+2]=average; imageDataCopy.data[i+3]=imageData.data[i+3]; }} function captureCanvasPixels(){ imageData=context.getImageData(0, 0, canvas.width, canvas.height); copyCanvasPixels();} function setWhiteBlackGlasses(){ captureCanvasPixels(); context.putImageData(imageDataCopy, 0, 0);}
0 1
- 基于HTML5 Canvas实现黑白滤镜
- canvas像素级操作实现滤镜之反色滤镜、黑白滤镜
- canvas像素级操作实现滤镜之反色滤镜、黑白滤镜
- 纯JavaScript实现HTML5 Canvas六种特效滤镜
- 纯JavaScript实现HTML5 Canvas六种特效滤镜
- 基于HTML5 Canvas实现用户交互
- 基于HTML5 Canvas实现用户交互
- 基于HTML5 Canvas 实现弹出框
- 基于HTML5 Canvas 实现弹出框
- 基于HTML5 Canvas 实现地铁站监控
- 基于canvas的图像黑白处理
- 基于Html5的Canvas实现的Clocks (钟表)
- 【飞秋】基于Html5的Canvas实现的Clocks (钟表)
- 【飞秋】基于Html5的Canvas实现的Clocks (钟表)
- 基于Html5的Canvas实现的Clocks (钟表)
- 基于HTML5 Canvas和jQuery 的画图工具的实现
- 基于HTML5 Canvas和jQuery的画图工具的实现
- 基于HTML5 Canvas和jQuery 的画图工具的实现
- 初学maven 笔记一
- Spring事务配置的五种方式
- 赛式方法论:为什么你的游戏做不完、做得烂?
- Android中Adapter的getView方法复用view机制
- virtualbox 与 腾讯信鸽不得不说的事
- 基于HTML5 Canvas实现黑白滤镜
- 简易图书管理系统总结
- android 图片的模糊化处理,效果类似超级课程表的“我的中心"里头像背景,看起来很炫
- Git冲突处理的一些经验
- GitHub 优秀的 Android 开源项目
- 子网掩码、端口、DNS、网关
- 全功能智能车之CCD定时器触发ADC 触发DMA传输(CCD终结篇)(第十五篇)
- 初学者如何查阅某个学术领域的资料(以自然语言处理为例子)
- xUtils中DbUtils用法