Ale*_*ran 14 android colors filter colorfilter porter-duff
我正在尝试解决android的问题ColorFilters.文档很差,所以主要方法是尝试不同的变体.
问题:
有一个位图.一些像素具有alpha = 255,其他像素具有alpha = 0.我正在尝试绘制一个具有特定颜色的圆圈.我想在位图中不改变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,但它们不像我描述的那样工作.
此外,srcColor在porter-duff colorfilter的构造函数中有一个奇怪的参数.
我无法理解"Sa"和"Sc"在公式中的含义[Da, Sc * Da + (1 - Sa) * Dc].它可以来自传递给colorfilter构造函数的颜色,也可以通过"paint.setColor"进行颜色设置.
谁知道,它是如何工作的?
Jav*_*ave 10
Sa并且Sc分别是"源alpha"和"源颜色"的短路.构造函数中的srcColor参数PorterDuffColorFilter是用于这些值的颜色.
对于你的情况,Mode.MULTIPLY这可能是最好的.
请注意,Porter-Duff模式仅定义为与预乘alpha一起正常工作.这意味着R,G或B组分都不能超过α值.
Android项目的GitHub项目,展示了所有Porter-Duff模式.该Android应用程序也可在Play商店中.
| 归档时间: |
|
| 查看次数: |
20388 次 |
| 最近记录: |