html让图片变灰色,javascript – 在html5中将图像的颜色更改为灰度

这篇博客介绍了如何使用JavaScript将PNG图像转换为灰度级别,同时保持图像的透明度不变。通过获取图像数据,计算每个像素的灰度值,并仅更新RGB通道,保留原有的Alpha通道值,实现了转换过程。这种方法适用于前端开发中的图像处理场景。
摘要由CSDN通过智能技术生成

我有一个png图像,我想转换成灰度级.我设法将其转换为灰度,但它也会改变图像透明度的颜色.如何在不改变图像的透明区域的情况下更改其颜色?

var canvas = document.getElementById('canvas');

var ctx = canvas.getContext('2d');

var img = new Image();

img.src = 'image.png';

ctx.drawImage(img, 0, 0);

var imageData = ctx.getImageData(0, 0, 420, 420);

var px = imageData.data;

var len = px.length;

for (var i = 0; i < len; i+=4) {

var redPx = px[i];

var greenPx = px[i+1];

var bluePx = px[i+2];

var alphaPx = px[i+3];

var greyScale = redPx * .3 + greenPx * .59 + bluePx * .11;

px[i] = greyScale;

px[i+1] = greyScale;

px[i+2] = greyScale;

px[i+3] = greyScale;

}

ctx.putImageData(imageData, 0, 0);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值