放置图像数据不起作用检查现有问题

putImageData not working checked existing questions

本文关键字:检查 有问题 不起作用 数据 图像      更新时间:2023-09-26
ctx.drawImage(preview,0,0, preview.width, preview.height)
var imgdata = ctx.getImageData(0,0, preview.width, preview.height).data;
ctx.putImageData(opaque(ctx.createImageData(10,10)), 0,0)

不透明函数将 alpha 数据设置为 1。 以便痛苦 10*10 的黑色方块。

function opaque(imgData){
        for(var i=0, data = imgData.data; i<data.length; i=i+4){            
            data[i+3] = 1;
        }       
        return imgData;
    }

但我的画布看起来是白色的。

你想做什么?

如果要绘制黑色方块,请使用context.fillRect(...(。它比操作图像数据更有效。

如果要使图像数据的某些部分完全透明,则需要将 alpha 通道设置为 0。alpha 通道在 [0..255] 范围内,零表示完全透明,255 表示完全不透明。

虽然我还没有真正运行它,但从阅读你的不透明函数来看,它似乎所做的只是使其 imageData 参数的像素几乎完全透明。