我有一个带有一些透明像素的位图,其余主要是黑色(一些黑色像素可能有一些半透明像素)。
我需要重新使用这些位图,并希望能够在运行时从这个位图中创建一个蒙版,然后尝试与另一种颜色(如红色、绿色等)的 block 混合,以便最终结果是相同的图像,但颜色为红色(那些半透明的黑色像素变成半透明的红色像素)。
我已经尝试了各种滤色器和 xfermodes,但一直无法弄清楚。请帮忙!
最佳答案
如果不需要高速,可以使用手动混合像素的简单解决方案。
final Bitmap bmp = /* there your bitmap */;
int w = bmp.getWidth();
int h = bmp.getHeight();
for (int x = 0; x < w; x++) {
for (int y = 0; y < h; y++) {
int color = bmp.getPixel(x, y);
// Shift your alpha component value to the red component's.
color = (color << 24) & 0xFF000000;
bmp.setPixel(x, y, color);
}
}
如果你需要更有效的处理,你必须(至少)使用getPixels方法,或者更可取的是本地处理。
关于android - 如何在 Android 中将具有黑色像素的位图转换为另一种颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10158173/