我正在尝试解决 android 的问题ColorFilters
。文档很差,所以主要方法是尝试不同的变体。
问题:
有一个位图。有些像素的 alpha=255,有些像素的 alpha=0。我正在尝试用特定颜色绘制一个圆圈。我希望位图中的 alpha 通道保持不变,但是在绘制时我想将颜色与位图 alpha 相乘。
因此,在绘制圆圈时,我希望不绘制 alpha=0 的像素,但要以我想要的颜色绘制 alpha=255 的像素。Alpha 通道不应该改变。
我正在尝试使用 porter-duff ColorFilter(android sdk 中的 PorterDuffColorFilter 类)。
官方网站上有太多模式和无法理解的描述:http: //developer.android.com/reference/android/graphics/PorterDuff.Mode.html
我想我应该使用DST_ATOP
or SRC_ATOP
,但它们不像我描述的那样工作。
另外,porter-duff colorfilter 的构造函数中有一个奇怪的参数srcColor
。
我不明白公式中的“Sa”和“Sc”是什么意思[Da, Sc * Da + (1 - Sa) * Dc]
。它可以来自传递给颜色过滤器构造函数的颜色,也可以由“paint.setColor”设置颜色。
有谁知道,它是如何工作的?