【问题标题】:Paint alpha mask bitmap as specific color将 alpha 蒙版位图绘制为特定颜色
【发布时间】:2023-03-11 16:25:02
【问题描述】:

如何将 alpha 蒙版图像/Bitmap 绘制为特定颜色。我正在尝试将图像上的 alpha(白色)乘以颜色并绘制它。

几个面具的例子:

Simple

Translucent

我希望黑色是透明的,而 alpha/白色是颜色。

【问题讨论】:

标签: java android android-canvas


【解决方案1】:

黑色 = 0x00ffffff 白色 = 0xffffffff

ARGB 的 32 位值的前两个十六进制字符决定了您的 alpha

    final int FULL_ALPHA = 0xFF000000;

    int pixel = FULL_ALPHA + some_value;
    Paint p = new Paint();
    p.setColor(pixel);
    c.drawCircle(width, height, radius, p);

【讨论】:

  • 0x00fffff 是完全透明的白色,而不是黑色。
  • 嗨。不确定在哪里使用 alpha 蒙版位图。能详细点吗?
【解决方案2】:

感谢@petey,我想我可能已经找到答案了。

Paint colorMultiplier = new Paint();
colorMultiplier.setColorFilter(new PorterDuffFilter(Color.parseColor("#123456"), PorterDuff.Mode.MULTIPLY));
canvas.drawBitmap(alphaMask, 0, 0, colorMultiplier);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多