【发布时间】:2012-05-02 00:09:41
【问题描述】:
我正在尝试解决 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 或SRC_ATOP,但它们不像我描述的那样工作。
另外,porter-duff colorfilter 的构造函数中有一个奇怪的参数srcColor。
我不明白公式[Da, Sc * Da + (1 - Sa) * Dc] 中的“Sa”和“Sc”是什么意思。它可以来自传递给颜色过滤器构造函数的颜色,也可以由“paint.setColor”设置颜色。
有人知道,它是如何工作的吗?
【问题讨论】:
-
你可以google porter duff看看这些模式是什么意思。
-
这篇很棒的文档用图片解释了 PorterDuff 模式:ssp.impulsetrain.com/porterduff.html 请注意它不像 android 那样添加“src_”:所以“IN”=“SRC_IN”
标签: android colors filter porter-duff colorfilter