android - 如何对颜色进行 alpha mask

标签 android image canvas alpha grayscale

在 Android (1.5) 中工作时,我有大约一百张字节数组形式的灰度图像。我想将图像用作 alpha 蒙版以在 Canvas 中绘制纯色。图像是固定的,但颜色可以改变。我可以为每个图像/颜色组合创建 Bitmap 对象,但这似乎非常低效。就内存和速度而言,解决此问题的好方法是什么? (我需要为每个图像/颜色组合多次执行此操作。)

最佳答案

我想我找到了我要找的答案:

  1. 创建一个 ARGB_8888 位图,其中每个像素颜色设置为 (gray << 24) | 0xFFFFFF。
  2. 为每种颜色创建一个新的 PorterDuffColorFilter(color, PorterDuff.Mode.MULTIPLY)。
  3. 要进行渲染,请创建一个 Paint 对象并使用与要使用的颜色相对应的滤镜调用 setColorFilter()。然后使用 Bitmap 和 Paint 对象调用 canvas.drawBitmap。

对于单一颜色,这可能不如完全构建我想要的位图并在没有 Paint 对象的情况下绘制那么快,但它比每个图像/颜色组合的位图更节省空间。

关于android - 如何对颜色进行 alpha mask ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4447834/

相关文章:

javascript - 如何在 Canvas 中缩放到三 Angular 形

android - 如何找到一个 GPS 点是否位于给定的一组开始和结束 GPS 位置?

excel - 调整图片宽度和高度

android - AppIcon 将在装有 Android App 的设备上显示两次

css - 在 CSS 中使用 1 个 url 设置图像 Sprite

php - 无法进行图像更新

javascript - Starfield canvas程序占用CPU过多

javascript - 从玩家向鼠标发射子弹?

java - Android 阻止返回之前的 Activity

android - 如何在 nativescript 插件中获取 Activity?