我花了很多时间来改变具有透明背景的 png 文件的颜色。我知道如何在 getImageData(ctx,0,0,100,100).data 中设置颜色;但是当我想保存新的PNG图像时,我有白色背景...
我有类似的东西:
var el = document.getElementById('before');
var ctx = el.getContext('2d');
var img=new Image();
img.src='src';
ctx.drawImage(img,0,0,150,150);
var imgData=ctx.getImageData(0, 0, 150, 150);
for (var i=0;i<imgData.data.length;i+=4){
imgData.data[i]=135;
imgData.data[i+1]=222;
imgData.data[i+2]=115;
}
var es = document.getElementById('after');
var cts = es.getContext('2d');
cts.putImageData(imgData,0,0);
示例 (我不知道为什么它在这里 putImageData)
在其他项目中(例如https://crosspop.in/croquis)它是可能的,但我找不到解决方案。
你知道如何从修改后的 getImageData 中创建具有透明背景的画布吗?
问候