1

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

根据源图像样本颜色,乘以或筛选颜色。如果源图像样本颜色浅于 50% 灰色,则背景变亮,类似于加网。如果源图像样本颜色比 50% 灰色深,则背景变暗,类似于相乘。如果源图像样本颜色等于 50% 灰度,则源图像不会更改。等于纯黑色或纯白色的图像样本会产生纯黑色或纯白色。整体效果类似于通过将强烈的聚光灯照射在源图像上所达到的效果。使用它为场景添加高光。

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

4

1 回答 1

3

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

于 2010-12-15T19:09:32.880 回答