相关疑难解决方法(0)

JavaScript DEFLATE实现

是否有任何针对JavaScript的开源DEFLATE编码器实现?我需要它在客户端生成需要DEFLATE的二进制格式.

javascript algorithm deflate

23
推荐指数
2
解决办法
2万
查看次数

如何使用canvas imageData停止alpha-premultiplication?

有没有办法阻止画布数据的alpha通道的预乘或解决方法?

我想生成一个图像(在这种情况下是一些随机的rgba值)并将画布保存为图像.

在第二步中,我想使用imageData将原始图像与生成的图像进行比较,但是由于生成的图像中我的rgba像素的alpha通道的预乘,这不起作用.

这个例子

function drawImage(ctx) {
    var img = ctx.createImageData(canvas.width,canvas.height);

        for (var i=img.data.length;i-=4;) {     
                img.data[i] = Math.floor(Math.random() * 255);
                img.data[i+1] = Math.floor(Math.random() * 255);
                img.data[i+2] = Math.floor(Math.random() * 255);
                img.data[i+3] = Math.floor(Math.random() * 255);
        }

        ctx.putImageData(img, 0, 0);
            // our image data we just set
        console.log(img.data);
            // the image data we just placed onto the canvas
        console.log(ctx.getImageData(0,0,canvas.width, canvas.height).data);
}   
Run Code Online (Sandbox Code Playgroud)

在控制台中,您将找到两个console.log输出.第一个在预乘之前,第二个在预乘之后.这两个输出是不同的,一些值偏离3或更多.这仅在涉及部分透明度时发生(将alpha设置为255以外的任何值).

有没有办法获得相同的输出?关于这个问题的任何想法?任何想法如何创建像这个问题的解决方法?

先感谢您!

javascript canvas rgba html5-canvas

14
推荐指数
2
解决办法
2466
查看次数

标签 统计

javascript ×2

algorithm ×1

canvas ×1

deflate ×1

html5-canvas ×1

rgba ×1