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系列教程-像素操作(反色,黑白,亮度,复古,蒙版,透明)相关推荐

  1. 前端画圆弧html弧线的像素,[js高手之路] html5 canvas系列教程 - arc绘制曲线图形(曲线,弧线,圆形)...

    arc:画弧度 cxt.arc( x, y, 半径, 开始角度,结束角度,是否逆时针 ); x, y: 为弧度的中心横坐标和纵坐标,如果这是画一个圆.那么x,y就是圆的圆心. 开始角度与结束角度都是以 ...

  2. HTML弧度文本,[js高手之路] html5 canvas系列教程 - 文本样式(strokeText,fillText,measureText,textAlign,textBaseline)...

    canvas提供两种输出文本的方式: strokeText:描边文本 fillText:填充文本 fillStyle配合fillText使用,strokeStyle配合strokeText使用 str ...

  3. [js高手之路] html5 canvas系列教程 - 线条样式(lineWidth,lineCap,lineJoin,setLineDash)

    上文,写完弧度与贝塞尔曲线[js高手之路] html5 canvas系列教程 - arcTo(弧度与二次,三次贝塞尔曲线以及在线工具),本文主要是关于线条的样式设置 lineWidth: 设置线条的宽 ...

  4. [js高手之路] html5 canvas系列教程 - 掌握画直线图形的常用API

    我们接着上文[js高手之路] html5 canvas系列教程 - 认识canvas以及基本使用方法继续. 一.直线的绘制 cxt.moveTo( x1, y1 ): 将画笔移动到x1, y1这个点 ...

  5. canvas上的像素操作(图像复制,细调)

    canvas上的像素操作(图像复制,细调) 总结 1.操作对象:ImageData 对象,其实是canvas的像素点集合 2.主要操作: var obj=ctx.getImageData(0,0,10 ...

  6. 【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)

    可在系列教程的基础上继续开发,也可以单独使用 [微信小程序-原生开发]系列教程 效果预览 代码实现 点击触发生成海报 在活动详情页,指定点击某图标/按钮,触发跳转到生成海报的页面 pages\comp ...

  7. js系列教程7-DOM操作全解

    全栈工程师开发手册 (作者:栾鹏) 快捷链接: js系列教程1-数组操作全解 js系列教程2-对象和属性全解 js系列教程3-字符串和正则全解 js系列教程4-函数与参数全解 js系列教程5-容器和算 ...

  8. js系列教程6-BOM操作全解

    全栈工程师开发手册 (作者:栾鹏) 快捷链接: js系列教程1-数组操作全解 js系列教程2-对象和属性全解 js系列教程3-字符串和正则全解 js系列教程4-函数与参数全解 js系列教程5-容器和算 ...

  9. HTML5/CSS3系列教程:使用SVG图片

    为什么80%的码农都做不了架构师?>>>    日期:2013-3-25  来源:GBin1.com 在我们开始使用SVG前,让我们先了解一下 SVG,并且解释一下为什么使用SVG. ...

最新文章

  1. linux 批量重命名文件
  2. android 图片放大缩小 多点触摸,Android 多点触摸(图片放大缩小)
  3. CCNA--点对点协议(PPP)
  4. 联海网站开发-操作说明-会员系统及诵读之星
  5. python3 执行系统命令_Python3 执行系统命令并获取实时回显功能
  6. DS18B20 驱动编写
  7. 炁体源流 鸿蒙,一人之下:八绝技中最强被曝光,没想到炁体源流落榜,第一在后头...
  8. 跟我一起学docker(17)--多节点mesos集群
  9. 计算机专业大学排名_2020全国计算机专业大学排名
  10. Python 实现Tracert追踪TTL值
  11. 黑盒测试与白盒测试(结合例子详细讲解)
  12. 天齐锂业通过聆讯:单季净利33亿 蒋卫平夫妇身价超500亿
  13. 非支配快速排序算法详解
  14. Sky Hackthon比赛指北-基础篇
  15. Visual Studio Code最新1.66.0版下载
  16. dw常用标签_dreamweaver中常用到的标签及含义
  17. 虚拟机的Nginx安装配置
  18. 清理计算机磁盘碎片,电脑磁盘碎片清理我帮你
  19. Redis_保存数据时报错MISCONF Redis is configured to save RDB snapshots, but it is curren
  20. 数学速算法_中小学数学神奇速算法,孩子吃透,运算能力提升快!

热门文章

  1. python 解方程 sympy_Python数据处理篇之Sympy系列(五)---解方程
  2. html怎么设置字体竖直,CSS3 writing-mode 控制字体竖直显示
  3. linux sh-3.2 怎么开机,linux 开机执行脚本文件
  4. js 常用js正则表达式大全
  5. Netty(三) 什么是 TCP 拆、粘包?如何解决?
  6. 【Docker】Segmentation Fault or Critical Error encountered. Dumping core and abort
  7. 计算机网络数据链路层次学习
  8. c#没有指针导致的性能问题研究一二
  9. Oracle 日常开发记录
  10. springboot整合redis,推荐整合和使用案例(2021版)