Javascript putImageData不工作已检查现有问题

Javascript putImageData不工作已检查现有问题,javascript,html,html5-canvas,Javascript,Html,Html5 Canvas,不透明函数将alpha数据设置为1。这样就形成了一个10*10的黑色正方形 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) 函数不透明(imgData){ 对于(var

不透明函数将alpha数据设置为1。这样就形成了一个10*10的黑色正方形

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)
函数不透明(imgData){

对于(var i=0,data=imgData.data;i您想做什么

如果你想画一个黑色的正方形,可以使用context.fillRect(…)。它比处理imageData更有效

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

虽然我还没有实际运行它,但从读取不透明函数来看,它似乎只需要使imageData参数的像素几乎完全透明

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