有没有办法在抠出某种颜色(如黑色)的同时叠加图像(jpeg)?这样图像中的所有纯黑色像素都是透明的?很像 Photoshop 中的“屏幕”混合模式?
我试过查看globalCompositeOperation
画布上下文的属性,但似乎没有任何效果。
谢谢!
有没有办法在抠出某种颜色(如黑色)的同时叠加图像(jpeg)?这样图像中的所有纯黑色像素都是透明的?很像 Photoshop 中的“屏幕”混合模式?
我试过查看globalCompositeOperation
画布上下文的属性,但似乎没有任何效果。
谢谢!
我想你会想研究直接像素操作。慢,但如果速度不如获得好结果重要,那就去做吧。
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 中有很多方法,但我不确定它们是否适用于您的应用程序,不知道它应该做什么。