博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
html5 canvas 图像处理
阅读量:5025 次
发布时间:2019-06-12

本文共 1142 字,大约阅读时间需要 3 分钟。

前两天无意中看了下《pro html5 programming》,发现html5竟然也能很好的支持图像处理,在此稍稍交代一下。

 

与matlab处理图像类似的是,这里也是采用图像矩阵的形式。

下面就介绍一个简单的例子:

      canvas图像处理      

canvas

是时候更换浏览器了
点击下载firefox

 1)html5 的canvas调用

var canvas1=document.getElementById('canvas1');//获取canvas元素var context1=canvas.getContext('2d');//此时获取到canvas图像上下文

   2)创建图像并绘制原始图像

image=new Image();//创建image对象	    image.src="z.JPG";//image的地址	    image.οnlοad=function(){		context1.drawImage(image,0,0);//绘制原始图像,(0,0)表示图像的左上角位与canvas画布的位置        }

 3)获取图像的rgba矩阵并操作

var imagedata=context1.getImageData(0,0,image.width,image.height);//getImageData(x1,y1,x2,y2)获取图像的rgba矩阵,其中截取图像的大小为(x1,y1)-(x2,y2) 的矩阵var imagedata1=context2.createImageData(image.width,image.height);//createImageData(x,y):创建宽高分别为x,y的图像矩阵   for(var j=0;j

  下面就细说下html5图像的储存形式:

矩阵中每个像素点有四个通道分别储存r/g/b/a的值。(四个值按序连续的排列,为一维矩阵)

所以每两个像素间相隔4位,计算时

k=4*(image.width*j+i);为像素点(i,j)的位置,
imagedata1.data[k+0]表示R分量,依次类推,其中剩下的分别为G、B分量还有透明度。
 
这样上面的程序就实现了简单的图像的反转功能。 效果如下:

 
 
另外需要注意的是,getImageData()函数可能会涉及到跨域的problem,所以建议配置apache环境并将该html放置到其根目录下进行操作。
转载请注明:

转载于:https://www.cnblogs.com/blue-lg/archive/2011/12/23/2299019.html

你可能感兴趣的文章
Tomcat:Can't load AMD 64-bit .dll on a IA 32 platform(问题记录)
查看>>
JAVA 集合JGL
查看>>
Python创建删除文件
查看>>
最全的分区类型及详解
查看>>
Python 类中__init__()方法中的形参与如何修改类中属性的值
查看>>
9.1.3 前端 - HTML body标签 - 文本样式
查看>>
ACID属性
查看>>
cnpm不是内部命令的解决方案:配置环境变量
查看>>
7系列FPGA远程更新方案-QuickBoot(转)
查看>>
导出帐号和权限脚本
查看>>
markdown公式编辑参考
查看>>
利用运行时给模型赋值
查看>>
归并排序求逆序对
查看>>
SQL2008用sql语句给字段添加说明
查看>>
JavaScript的对象创建
查看>>
树形DP(统计直径的条数 HDU3534)
查看>>
python学习之路(25)
查看>>
c++中拷贝构造函数、默认无参构造函数、析构函数的理解
查看>>
ActiveReports 报表控件官方中文入门教程 (3)-如何选择页面报表和区域报表
查看>>
kaggle竞赛
查看>>