我正在尝试解决与 Android ColorFilters
相关的问题。文档非常贫乏,因此主要方法是尝试不同的变量。
问题:
有一个位图。一些像素的 alpha=255,其他像素的 alpha=0。我正在尝试用特定颜色绘制圆形。我希望 alpha 通道在位图中保持不变,但在绘制时,我希望将颜色乘以位图的 alpha。
因此,在绘制圆圈时,我希望 alpha=0 的像素不被绘制,但是 alpha=255 的像素被绘制成我想要的颜色。alpha 通道不应更改。
我正在尝试使用 PorterDuff ColorFilter(Android SDK 中的 PorterDuffColorFilter 类)。
有太多的模式,官方网站上的描述难以理解:http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html
我认为我应该使用 DST_ATOP
或 SRC_ATOP
,但它们的工作方式与我描述的不同。
此外,在 porter-duff 颜色过滤器的构造函数中存在奇怪的参数 srcColor
。
我无法理解公式 [Da,Sc * Da +(1-Sa)* Dc]
中的“Sa”和“Sc”的含义。它可以来自传递到 colorfilter 构造函数中的颜色,也可以是由 "paint.setColor" 设置的颜色。
有人知道这是如何工作的吗?