将CoreGraphics混合模式映射到Porter-Duff

时间:2010-12-15 18:48:20

标签: iphone android core-graphics blending porter-duff

我有一个iPhone应用程序通过CoreGraphics混合两个UIImage对象进行图像处理,特别是CGContextSetBlendMode。我目前正在研究将其移植到Android。我已经完成了使用PorterDuff模式在Android上组合Bitmap个对象的过程。但是,我想要更复杂的合成。例如,我正在使用kCGBlendModeHardLight进行多种混合:

  

乘以或屏幕颜色,   取决于源图像样本   颜色。如果是源图像样本   颜色比50%灰色浅   背景减轻了,类似于   筛选。如果是源图像样本   颜色比50%灰色深   背景暗淡,类似于   乘法。如果是源图像   样品颜色等于50%灰色,   源图像未更改。图片   样品等于纯黑色   或纯白色结果为纯黑色或   白色。整体效果类似   通过照亮你所取得的成就   源图像上的苛刻聚光灯。   使用此选项可为场景添加高光。

但是无论如何都不知道(如果可能的话)通过Porter-Duff模仿这个。 Android不支持更好的Image Manipulation算法吗?是否可以以某种方式使用Porter-Duff来模拟更高级的混合模式?

1 个答案:

答案 0 :(得分:3)

除了12个Porter-Duff混合方程式外,Android还支持Lighten,Darken,Multiply,Screen和很快Overlay。不幸的是,这意味着HardLight不可用,您必须自己实现它。