html5 canvas系列教程-像素操作(反色,黑白,亮度,复古,蒙版,透明)
getImageData:获取一张图片的像素数据
cxt.getImageData( x, y, width, height )
x:图片所在的x坐标
y: 图片所在的y坐标
width,height 要获取的像素区域
返回值是一个对象,对象包括一个data属性, 宽度,高度. data属性是一个巨大的数组,数组中存储的是这张图片的所有像素信息,每四个一组组成一个像素点的信息,如:
[r1,g1,b1,a1, r2,g2,b2,a2...], r( 红色) g( 绿色) b( 蓝色 ) a( 透明度 )
putImageData:输出像素图片
putImageData( 像素对象, x, y )
注意:getImageData会产生跨域问题,所以你的程序要放在web服务器下,我这里是放在phpstudy下面.
我这张图片的尺寸是200 x 200.
一:反色效果
算法:把每一个像素的r, g, b颜色取反就行,也就是( 255 - 原来的值 )
二、黑白效果(灰度图)
将彩×××片转换成黑白图片,原理:求r(data[i]), g(data[i+1]), b(data[i+2])三个通道的平均值,然后把这个平均值赋值给r, g, b
也可以分配rgb的灰度比例
三、调节亮度的强弱
在r、g、b、通道上加上一正值就是变亮,加上负值就是变暗
变暗:
data[i] -= 30;
data[i+1] -= 50;
data[i+2] -= 50;
四、复古效果
将r, g, b按比例混合相加。
五、蓝色蒙版
蓝色 蒙版就是让图片偏蓝色,将蓝色通道赋值为 r, g, b三原色的平均值,把绿色,红色通道设置为0,其他蒙版效果,只要设置对应的通道平均值,关闭其他通道即可.
六、透明度
这个很简单,只要把透明度乘以一个0~1之间的值即可。跟css的opacity一样
七、createImageData:根据图片或者某个宽度与高度创建一个像素区域
cxt.createImageData( w, h )
cxt.createImageData( imgData )
w, h:创建区域的宽度与高度
imgData: 创建的区域与这个像素区域的宽度和高度相同,imgData就是通过getImageData获取到图片像素的 返回值
1,根据一个图片的宽度与高度,创建一个透明的红色像素区域
2,自定一个200 x 200的蓝色透明像素区域
转载于:https://blog.51cto.com/13457136/2132080
html5 canvas系列教程-像素操作(反色,黑白,亮度,复古,蒙版,透明)相关推荐
- 前端画圆弧html弧线的像素,[js高手之路] html5 canvas系列教程 - arc绘制曲线图形(曲线,弧线,圆形)...
arc:画弧度 cxt.arc( x, y, 半径, 开始角度,结束角度,是否逆时针 ); x, y: 为弧度的中心横坐标和纵坐标,如果这是画一个圆.那么x,y就是圆的圆心. 开始角度与结束角度都是以 ...
- HTML弧度文本,[js高手之路] html5 canvas系列教程 - 文本样式(strokeText,fillText,measureText,textAlign,textBaseline)...
canvas提供两种输出文本的方式: strokeText:描边文本 fillText:填充文本 fillStyle配合fillText使用,strokeStyle配合strokeText使用 str ...
- [js高手之路] html5 canvas系列教程 - 线条样式(lineWidth,lineCap,lineJoin,setLineDash)
上文,写完弧度与贝塞尔曲线[js高手之路] html5 canvas系列教程 - arcTo(弧度与二次,三次贝塞尔曲线以及在线工具),本文主要是关于线条的样式设置 lineWidth: 设置线条的宽 ...
- [js高手之路] html5 canvas系列教程 - 掌握画直线图形的常用API
我们接着上文[js高手之路] html5 canvas系列教程 - 认识canvas以及基本使用方法继续. 一.直线的绘制 cxt.moveTo( x1, y1 ): 将画笔移动到x1, y1这个点 ...
- canvas上的像素操作(图像复制,细调)
canvas上的像素操作(图像复制,细调) 总结 1.操作对象:ImageData 对象,其实是canvas的像素点集合 2.主要操作: var obj=ctx.getImageData(0,0,10 ...
- 【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
可在系列教程的基础上继续开发,也可以单独使用 [微信小程序-原生开发]系列教程 效果预览 代码实现 点击触发生成海报 在活动详情页,指定点击某图标/按钮,触发跳转到生成海报的页面 pages\comp ...
- js系列教程7-DOM操作全解
全栈工程师开发手册 (作者:栾鹏) 快捷链接: js系列教程1-数组操作全解 js系列教程2-对象和属性全解 js系列教程3-字符串和正则全解 js系列教程4-函数与参数全解 js系列教程5-容器和算 ...
- js系列教程6-BOM操作全解
全栈工程师开发手册 (作者:栾鹏) 快捷链接: js系列教程1-数组操作全解 js系列教程2-对象和属性全解 js系列教程3-字符串和正则全解 js系列教程4-函数与参数全解 js系列教程5-容器和算 ...
- HTML5/CSS3系列教程:使用SVG图片
为什么80%的码农都做不了架构师?>>> 日期:2013-3-25 来源:GBin1.com 在我们开始使用SVG前,让我们先了解一下 SVG,并且解释一下为什么使用SVG. ...
最新文章
- linux 批量重命名文件
- android 图片放大缩小 多点触摸,Android 多点触摸(图片放大缩小)
- CCNA--点对点协议(PPP)
- 联海网站开发-操作说明-会员系统及诵读之星
- python3 执行系统命令_Python3 执行系统命令并获取实时回显功能
- DS18B20 驱动编写
- 炁体源流 鸿蒙,一人之下:八绝技中最强被曝光,没想到炁体源流落榜,第一在后头...
- 跟我一起学docker(17)--多节点mesos集群
- 计算机专业大学排名_2020全国计算机专业大学排名
- Python 实现Tracert追踪TTL值
- 黑盒测试与白盒测试(结合例子详细讲解)
- 天齐锂业通过聆讯:单季净利33亿 蒋卫平夫妇身价超500亿
- 非支配快速排序算法详解
- Sky Hackthon比赛指北-基础篇
- Visual Studio Code最新1.66.0版下载
- dw常用标签_dreamweaver中常用到的标签及含义
- 虚拟机的Nginx安装配置
- 清理计算机磁盘碎片,电脑磁盘碎片清理我帮你
- Redis_保存数据时报错MISCONF Redis is configured to save RDB snapshots, but it is curren
- 数学速算法_中小学数学神奇速算法,孩子吃透,运算能力提升快!
热门文章
- python 解方程 sympy_Python数据处理篇之Sympy系列(五)---解方程
- html怎么设置字体竖直,CSS3 writing-mode 控制字体竖直显示
- linux sh-3.2 怎么开机,linux 开机执行脚本文件
- js 常用js正则表达式大全
- Netty(三) 什么是 TCP 拆、粘包?如何解决?
- 【Docker】Segmentation Fault or Critical Error encountered. Dumping core and abort
- 计算机网络数据链路层次学习
- c#没有指针导致的性能问题研究一二
- Oracle 日常开发记录
- springboot整合redis,推荐整合和使用案例(2021版)