HTML5 Canvas操作图像像素
操作图像像素
如果要对图像进行进一步的处理,就可以先通过getImageData()方法获取图像像素,进行处理后再通过putImageData()方法,把处理后的像素重新绘制到画布中。
1)getImageData()方法
该方法用于获取画布上指定区域的图像像素数据。调用格式如下:
var data = context.getImageData(sx, sy, sWidth, sHeight)
其中,sx、sy为所选区域的坐标,sWidth、sHeight为所选区域的宽度和高度。该方法返回一个指向ImageData对象的引用,其内容为所选区域中的原始像素信息,该对象包括以下三个属性:
width:所选区域中的每行有多少个像素。
height:所选区域中的每列有多少个像素。
data:像素数值的一维数组,保存所选区域中每个像素的RGBA(红、绿、蓝、alpha)值,按该区域从左到右、从上到下按RGBA格式依次保存,如[r1,g1,b1,a1,r2,g2,b2,a2...] 。因此,所选区域中的每个像素,在这个数组中就变成了四个整数值。
说明:
在给定了width和height的canvas上,在坐标(x ,y)处的像素所对应RGBA的计算公式如下:
R:((width * y) + x) * 4
G:((width * y) + x) * 4 + 1
B:((width * y) + x) * 4 + 2
A:((width * y) + x) * 4 + 3
2)putImageData()方法
修改了任何像素的RGBA的值之后,可以通过putImageData()方法把处理后的图像像素重新绘制到画布中。调用格式:
context.putImageData(imgdata, dx, dy [, sx, sy, sWidth, sHeight])
其中imgdata为像素数据,dx、dy是绘制目标的位置坐标,sx、sy是imgdata的位置坐标,sWidth、sHeight是imgdata的宽度和高度值(相对imgdata的sx和sy坐标的偏移量)。如果省略可选参数sx、sy、sw、sh,则表示绘制整个imgdata。
putImageData()方法会忽略图形的所有属性,不进行组合操作,也不会用gloabAlpha乘以像素来显示,更不会绘制阴影。
说明:
使用putImageData()方法向canvas中绘制图像数据时,诸如globalAlpha和globalCompositeOperation这样的全局属性,不会影响到所绘制的图像,浏览器也不会在绘制时应用阴影、全局透明度、组合等效果。这是它与drawImage()方法的区别。
关于作者
歪脖先生,十五年以上软件开发经验,酷爱Web开发,精通 HTML、CSS、JavaScript、jQuery、JSON、Python、Less、Bootstrap等,著有《HTML宝典》、《揭秘CSS》、《Less简明教程》、《JSON教程》、《Bootstrap2用户指南》,并全部在 GitHub 上开源。
版权声明:本文出自 歪脖网 的《HTML宝典》,欢迎在线阅读,并提出宝贵意见。
HTML5 Canvas操作图像像素相关推荐
- html怎样把图片放进画布中,HTML5 canvas操作图片
1.canvas操作图像的能力 canvas更有意思的一项特性就是图像操作能力.可以用于动态的图像合成或者作为图形的背景,以及游戏界面(Sprites)等等.浏览器支持的任意格式的外部图片都可以使用, ...
- OpenCV(一)图像读取与新建、图像显示、操作图像像素(2种涂色并比较算法优劣、输出RGB)
目录 一.读取图像与新建图像 1.读取图像 2.新建图像 二.显示图像 1.过程 2.代码 3.运行效果 三.操作图像像素 1.逐RGB涂色(单循环)(快) 1-1.过程 2-2.代码 2-3.运行结 ...
- 使用canvas操作图像
canvas 获取截图 具体是使用 canvas 的 toDataURL 方法: var image = new Image(); image.src = canvas.toDataURL(&qu ...
- 用 canvas 操作图片像素
canvas 像素操作 在 canvas 中可以使用 context.drawImage(image,dx,dy) 方法将图片绘制在 canvas 上.将图片绘制上去后,还可以使用 context.g ...
- Canvas操作图片像素
Canvas支持直接处理图片中的像素,通过对图片像素进行各种类型的处理,能够实现不同的图片效果,本文的示例图片来自参考文献1,图片像素处理方法参照的参考文献2-7. Canvas主要通过两种方 ...
- html5 canvas系列教程-像素操作(反色,黑白,亮度,复古,蒙版,透明)
getImageData:获取一张图片的像素数据 cxt.getImageData( x, y, width, height ) x:图片所在的x坐标 y: 图片所在的y坐标 width,height ...
- java canvas旋转_在HTML5 Canvas上将图像旋转90度
我无法使用HTML5画布旋转图像 . 我想我的数学错误,并希望得到任何帮助 . 在移动设备上,我在150px x 558px画布上捕获用户签名 . 我试图创建一个558像素×150像素的图像,这只是旋 ...
- HTML5 Canvas像素处理常用接口
内容概要:本文通过简单的代码实例,以及略猥琐的图片demo,展示了canvas在图像像素数据操作方面的常用接口.至于如何利用这几个接口实现更复杂的效果,则会在后续章节里继续讲述. 一.canvas图片 ...
- 前端画圆弧html弧线的像素,[js高手之路] html5 canvas系列教程 - arc绘制曲线图形(曲线,弧线,圆形)...
arc:画弧度 cxt.arc( x, y, 半径, 开始角度,结束角度,是否逆时针 ); x, y: 为弧度的中心横坐标和纵坐标,如果这是画一个圆.那么x,y就是圆的圆心. 开始角度与结束角度都是以 ...
最新文章
- 【多标签文本分类】Initializing neural networks for hierarchical multi-label text classification
- 裴健:搜索皆智能,智能皆搜索
- 【控制】《多智能体系统一致性协同演化控制理论与技术》纪良浩老师-第12章-离散时间多智能体系统牵制一致性
- 8分频verilog线_Verilog设计分频器(面试必看)
- Java编程基础篇第四章
- Storm编程模型总结
- 【LeetCode】3月19日打卡-Day4
- 真我手机信号好还是苹果三星信号好?
- jdbc map获取keys_JDBC连接数据库返回结果集的Key值
- c++vector(入门级)
- 2.shiro+jdbc+idea+maven数据库
- Educational Codeforces Round 118 (Rated for Div. 2)
- CGAL学习记录——点云密度计算
- 代码执行sql出错:SQL syntax error, expected token is ‘RIGHT_PAREN‘, actual token is ‘IDENTIFIER‘
- 【计算机组成原理】学了计组,CPU执行时间你肯定会算了吧
- Java-append()方法
- 启动容器后,即便映射了端口,使用docker ps 命令查看,ports列也是空
- 网新中英企业网站管理系统 v9.9
- python有什么好玩的库_python有什么好玩的库
- 钉钉第三方登录,多地址授权
热门文章
- 关于linux中的上下文切换
- mysql安装图解及报错解决
- hive添加字段报conflicting lock
- 一个SQL逻辑读异常的解决方法
- 晒2012年度十大杰出IT博客 奖品
- 你需要知道的基础算法知识——STL和基础数据结构(二)
- 一维信号小波阈值去噪 c语言,一维信号小波阈值去噪
- arcgis xml 下载 切片_arcgis api 4.x for js地图加载arcgisserver本地离线瓦片(附源码下载)...
- 三种Hash算法对比以及秒传原理.
- linux压缩命令(二)bzip2总结