通过画布canvas实现图片黑白化

本文介绍了如何通过HTML5的canvas元素将彩色图片转化为黑白图片。首先获取canvas的2D绘图上下文,然后利用getImageData方法获取图像数据,遍历每一个像素点,计算红色、绿色、蓝色的平均值,并将这三种颜色通道的值都设置为这个平均值,从而实现黑白化。最后,通过putImageData将处理后的数据放回canvas。
摘要由CSDN通过智能技术生成

图片是由一个个的像素点组成的,而每一个像素点都是由三原色(red,green,blue)加透明度(alpha)来组成。所以说如果我们希望改变图像的图像数据,其实就是改变图像每一个像素点的数据。

 

首先创建canvas对象,canvas对象提供了 2D、3D两种绘图方式,这里我们使用2D绘图
使用 context2d = drawing.getContext('2d'); 方法获得context2d对象。微信小程序通过wx.createCanvasContext创建canvas对象,拿到context2d对象之后,我们通过context2d提供的方法getImageData(),来获取图像数据,微信通过wx.getImageInfo,getImageData()有4个参数,分别表示画面区域的 x 和 y 坐标以及该区域的像素宽度和高度 var imagedata = context2d.getImageData(0, 0, image.width, image.height);
ImageData 对象都有三个属性:width、height 和
data。其中 data 属性是一个数组,保存着图像中每一个像素的数据。并通过,red,green,blue,alpha来表示。我们如果想要改变图像的图像数据,就需要改变 imagedata的data属性数据,改变 red,green,blue,alpha 的值。

var imagedata = context2d.getImageData(0, 0, image.width, image.height);

var data = imagedata.data;

let i,len,red,green,blue,alpha,average;

for (i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值