9

我正在尝试快速反转现有 UIView 的颜色(变成负片,如摄影负片)。或者取颜色并调低饱和度。我认为比操作位图更容易的是采用另一个全白(或阴影)的 UIView,并使用混合模式来实现我的目标。

我没有看到一种方法来指导如何将 UIView 绘制在另一个之上。即使我将 UIView 子类化,我也看不到使用更多混合来绘制矩形的简单方法。看起来我将不得不继承具有 drawrect:withBlendMode 的 UIImageView。

有没有人以更简单的方式做到这一点?我希望我可以在 UIView 或 UIImageView 上设置一个 blendmode 属性,而不必子类化......

基本上,您将如何快速反转视图以使黑色为白色,白色为黑色?

4

1 回答 1

7

这似乎是解决方案:

创建一个 UIView 的子类。然后在drawRect中:

    [self.image drawInRect:rect];

    // prepare the context to draw into
    CGContextRef context = UIGraphicsGetCurrentContext();

    // set the blend mode
    CGContextSetBlendMode(context, kCGBlendModeDifference);

    // now draw the appropriate color over the whole thing
    CGContextFillRect(....);

我现在要去试试这个。

于 2009-09-03T23:33:29.473 回答