当前位置:w88优德官网网文章中心网站设计网页设计 → 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...
  • 赞助商广告

    图片文章导读