package-lock.json的作用

相对图片做一个灰度转换,在网上找到这么一个方法,但是不太清楚原理,搜索一下大概了解了就做个简单的记录:
方法:

 var c=document.getElementById("myCanvas");
 #获取h5的canvas属性
 var ctx=c.getContext("2d");
 #返回一个对象,该对象提供了用于在画布上绘图的方法和属性
 var image_data=document.getElementById("img");
 #读取图片
 ctx.drawImage(image_data,0,0);
 #将图片绘制到画板
 var imgData=ctx.getImageData(0,0,image_data.width,image_data.height);
    // 反转颜色
    for (var i=0;i<imgData.data.length;i+=4)
    {
        imgData.data[i]=255-imgData.data[i];
        imgData.data[i+1]=255-imgData.data[i+1];
        imgData.data[i+2]=255-imgData.data[i+2];
        imgData.data[i+3]=255;
    }
    ctx.putImageData(imgData,0,0);

重点说明下imgData.data.length属性:

data 属性返回一个对象,该对象包含指定的 ImageData 对象的图像数据。
对于 ImageData 对象中的每个像素,都存在着四方面的信息,即 RGBA 值:
R - 红色(0-255)
G - 绿色(0-255)
B - 蓝色(0-255)
A - alpha 通道(0-255; 0 是透明的,255 是完全可见的)
color/alpha 信息以数组形式存在,并存储于 ImageData 对象的 data 属性中。

所以一张100*100的图片的imgData.data.length大小应该是
100*100*4=40000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值