0

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

我试过查看globalCompositeOperation画布上下文的属性,但似乎没有任何效果。

谢谢!

4

1 回答 1

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 中有很多方法,但我不确定它们是否适用于您的应用程序,不知道它应该做什么。

于 2012-08-30T01:12:43.493 回答