作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有一些透明像素的位图,其余主要是黑色(一些黑色像素可能有一些半透明像素)。
我需要重新使用这些位图,并希望能够在运行时从这个位图中创建一个蒙版,然后尝试与另一种颜色(如红色、绿色等)的 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/
我是一名优秀的程序员,十分优秀!