当前位置:错新网文章中心网站设计网页设计 → canvas的神奇用法

canvas的神奇用法

减小字体 增大字体 作者:xin  来源:www.cuoxin.com  发布时间:2017-7-25 9:53:28

canvas有一个神奇的方法getImageData这个玩意。它可以获取canvas内图像的没一个像素点的颜色值获取,而且可以改变。

如果你有各种滤镜的算法。那么用canvas就可以实现图片的滤镜转化,可以做成类似美图秀秀那样的功能。

使用方法:

1:先将图片导入画布。

2:var canvasData = context.getImageData(0, 0, canvas.width, canvas.height); //用这个将图片每个像素点的信息获取出来,得到一个数组。注意得到的信息不是[[r,g,b,a],[r,g,b,a]]这样的二维数组而是[r,g,b,a,r,g,b,a]这样的按rgba顺序排列的单个的数组。

3:这一步就是开始将每个像素的rgba改变。这里简单介绍一下灰度效果的算法及实现步骤。

function gray(canvasData){for ( var x = 0; x < canvasData.width; x++) {     for ( var y = 0; y < canvasData.height; y++) {       // Index of the pixel in the array       var idx = (x + y * canvasData.width) * 4;       var r = canvasData.data[idx + 0];       var g = canvasData.data[idx + 1];       var b = canvasData.data[idx + 2];       var gray = .299 * r + .587 * g + .114 * b;                    // assign gray scale value        canvasData.data[idx + 0] = gray; // Red channel        canvasData.data[idx + 1] = gray; // Green channel        canvasData.data[idx + 2] = gray; // Blue channel        canvasData.data[idx + 3] = 255; // Alpha channel        // add black border        if(x < 8 || y < 8 || x > (canvasData.width - 8) || y > (canvasData.height - 8))         {          canvasData.data[idx + 0] = 0;          canvasData.data[idx + 1] = 0;          canvasData.data[idx + 2] = 0;        }     }}return canvasData;}

4:context.putImageData(canvasData, 0, 0); //处理完像素颜色值之后,记得要这一句将画布重绘

这些个代码就是将图片转化为黑白效果的代码,具体可以实现多少效果就得看你掌握的滤镜算法有多少了。

原文链接:http://www.qdfuns.com/notes/40566/c8658dd11ab0db16772e21d03f9080d9.html

(【错.新.网】 Cuoxin.com)


本文引用网址:

在下列搜索引擎中搜索“canvas的神奇用法”的相关信息:

谷歌搜索 百度搜索 360搜索 雅虎搜索 搜狗搜索 搜搜搜索 必应搜索 有道搜索
你可能还喜欢以下文章
  • 1最新90后吹箫门事件曝光 90后女...
  • 2王梦溪未经处理雅照120P完整艳...
  • 3女学生裸贷资源百度云下载 10G...
  • 4美女穿紧身裤性感诱惑露阴沟 宅...
  • 5如何做爱真人示范图片 男女ML常...
  • 117岁女孩身份证号大全 18岁女孩...
  • 2去掉dedecms栏目页和内容页的当...
  • 3我想更改前台页面的样子,改怎...
  • 4女性18岁身份证号大全 成年女人...
  • 5图解Godaddy支付宝购买主机全过...
  • 1兰州警花王梦溪裸照全集视频 王...
  • 2嫩白少妇与猛男户外疯狂车震遭...
  • 3中国女大学生的淫靡生活
  • 4合肥艳照门事件 合肥艳照门全套...
  • 5全球空姐制服比拼
  • 1一般人不告诉他 墨盒喷头清洗方...
  • 2Linux和GNU有什么关系?
  • 3配置Linux的环境变量
  • 4如何做服务器安全维护?有哪些...
  • 5Linux系统用户账号文件中passw...
  • 赞助商广告

    图片文章导读