作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 ARGB_8888 位图,我需要在绘制到 Canvas 之前对其应用 alpha 蒙版。 Alpha 掩码是表示图像的 Alpha channel 的字节流。我可以检索 Bitmap 的 int 像素值数组,遍历数组并为每个像素设置 alpha,从新像素值创建位图,然后将其绘制到 Canvas 上;但这似乎效率极低。所以,我希望使用一些内置功能将蒙版应用于位图;但找不到任何有用的东西。有什么建议吗?
最佳答案
首先,确保您有一个带有 Bitmap.isMutable()
的可变位图。
您是否尝试过 Bitmap.setHasAlpha
并在您的可变 Bitmap
上使用算术运算来简单地“添加”alpha channel ?
也就是说,如果您有一个像素是 #00FF0000
,您可以添加 #FF000000
使其完全透明。
这比复制到新的 Bitmap
更有效。
也许是这样
int desiredAlpha = 0x0F000000;
for(int i = 0; i < Bitmap.getwidth; i++)
{
for(int j = 0; j < Bitmap.getHeight; j++)
{
Bitmap.setPixel(Bitmap.getPixel(i,j) + desiredAlpha);
}
}
希望这对您有所帮助!
关于Android:如何将透明蒙版应用于位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7161877/
我是一名优秀的程序员,十分优秀!