html5画布图像合成

时间:2012-08-30 00:56:20

标签: image html5 html5-canvas blending

有没有办法在键入某种颜色(如黑色)时叠加图像(jpeg)?那么图像中的所有纯黑色像素都是透明的?很像Photoshop中的“屏幕”混合模式?

我已经尝试查看画布上下文的globalCompositeOperation属性,但似乎没有什么可行的。

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为你会想要研究直接像素操作。慢但如果速度不如获得好结果那么重要,那就去做吧。

for (y = 0; y < height; y++) {
    inpos = y * width * 4; // *4 for 4 ints per pixel
    outpos = inpos + w2 * 4
    for (x = 0; x < w2; x++) {

        g = imageData.data[inpos++] / 3; 
        a = imageData.data[inpos++];     

        if( g > someValue )
              a = someNewAlpha;

        imageData.data[outpos++] = a;
    }
}

获取更多帮助,请参阅http://beej.us/blog/data/html5s-canvas-2-pixel/

在OpenGL中有很多方法,但我不确定它们是否适用于您的应用程序,而不知道它应该做什么。