canvas三 图像处理
2016-02-23 11:06
176 查看
1.drawImage
(1)var image=new Image();
image.src="";
image.onload=function(){
cxt.drawImage(image,0,0,[dw],[dh]);
}
(2)渲染图像
cxt.drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh);
(3)h5滑动杆元素
<input type="range"/>
min="",max="",step="",value=""
2.添加水印
采用离屏canvas,把第二个canvas绘制在第一个canvas中
drawImage(waterMarkCanvas,dx,dy)
3.canvas实现图片放大镜功能
canvas.getBoundingClientRect()获取canvas距离屏幕的相关属性
cxt.clip()
4.canvas进行像素级处理
imageData=cxt.getImageData(x,y,w,h) //获取像素,imageData包括width,height,data全部信息
cxt.putImageData(imageData,dx,dy,dirtyX,dirtyY,dirtyW,dirtyH) //dirty的xy是累加
5.imageData.data存储像素信息,四个一组(r,g,b,p)
6.滤镜效果
灰度滤镜:一个点灰度的计算方法:r*0.3+g*0.59+b*0.11(图像学公式),使每个点的r,g,b值均为灰度值,则实现灰度滤镜
黑白滤镜:或者rgb为全0,或者rgb为全255,设置阈值,进行手动设置即可
反色滤镜:图像上每个点的值设置为255-origin
模糊滤镜:需要参考自己周围的像素
马赛克滤镜:整块中像素使用平均值
扩展:人脸识别等
7.创建imageData
imageData=cxt.creatImageData(w,h)
(1)var image=new Image();
image.src="";
image.onload=function(){
cxt.drawImage(image,0,0,[dw],[dh]);
}
(2)渲染图像
cxt.drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh);
(3)h5滑动杆元素
<input type="range"/>
min="",max="",step="",value=""
2.添加水印
采用离屏canvas,把第二个canvas绘制在第一个canvas中
drawImage(waterMarkCanvas,dx,dy)
3.canvas实现图片放大镜功能
canvas.getBoundingClientRect()获取canvas距离屏幕的相关属性
cxt.clip()
4.canvas进行像素级处理
imageData=cxt.getImageData(x,y,w,h) //获取像素,imageData包括width,height,data全部信息
cxt.putImageData(imageData,dx,dy,dirtyX,dirtyY,dirtyW,dirtyH) //dirty的xy是累加
5.imageData.data存储像素信息,四个一组(r,g,b,p)
6.滤镜效果
灰度滤镜:一个点灰度的计算方法:r*0.3+g*0.59+b*0.11(图像学公式),使每个点的r,g,b值均为灰度值,则实现灰度滤镜
黑白滤镜:或者rgb为全0,或者rgb为全255,设置阈值,进行手动设置即可
反色滤镜:图像上每个点的值设置为255-origin
模糊滤镜:需要参考自己周围的像素
马赛克滤镜:整块中像素使用平均值
扩展:人脸识别等
7.创建imageData
imageData=cxt.creatImageData(w,h)
相关文章推荐
- 关于mac电脑整个根目录文件夹都变成含有git分支的解决办法
- 最新linux内核编译
- iOS- Exception Type: 00000020:什么是看门狗机制
- 关于使用个推初始化个推实例的过程中出现的问题
- Socket, Http, TCP/IP 概述
- ecshop array_shift
- 针对url进行处理
- WebView(网页视图)基本用法
- 蓝桥杯 奖券数目(数位dp)
- Attempt to invoke interface method 'boolean android.database.Cursor.requery()' on a null object refe
- 安卓动态调试七种武器之孔雀翎 – Ida Pro
- android 常见命令总结
- python爬虫(抓取百度图片)
- 高性能javascript
- 【C++】static关键字的作用
- MagNet协议
- Jenkins进阶系列之——04Publish Over FTP Plugin插件
- [iOS]分享一段用系统API生产二维码的代码
- Integer
- 在delphi如何把TADOQuery.ParamCheck