【问题标题】:iPhone SDK Invert the Colors of a UIImageiPhone SDK 反转 UIImage 的颜色
【发布时间】:2010-02-15 00:31:13
【问题描述】:

我有一个 iPhone 应用程序,它允许人们用手指在屏幕上绘制一些东西。他们在黑色背景上画一条白线。但是,当我将此图像上传到 Web 服务器时,线条本身是白色的。我一直在尝试通过核心图形库来寻找一种反转绘制图像颜色的方法。没有设置背景,所以它应该是透明的。进行图像反转应该将白色交换为黑色。

有谁知道这是否可以通过核心图形库实现?

干杯

【问题讨论】:

    标签: iphone colors core-graphics iphone-sdk-3.1


    【解决方案1】:

    我最终找到了一个很好的方法。我不是简单地将原始图像的背景设置为透明,而是将其设置为黑色。现在黑色背景上有白线。那么这只是一个简单的事情:

    UIGraphicsBeginImageContext(image.size);
    CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeCopy);
    [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
    CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeDifference);
    CGContextSetFillColorWithColor(UIGraphicsGetCurrentContext(),[UIColor whiteColor].CGColor);
    CGContextFillRect(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, image.size.width, image.size.height));
    UIImage *returnImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    

    变量'image'是黑底白线的原始图像。感谢您的帮助大卫·索西

    【讨论】:

    • 你是如何将背景颜色设置为黑色的?
    【解决方案2】:

    是的。您应该能够通过调用 CGContext 或直接使用 CGImage 上的缓冲区在 CALayer 中执行此操作。 Stackoverflow 上还有其他关于如何在 UIView 中来回保存图像的示例。

    【讨论】:

    • 您能否在此处添加一些指向这些示例的链接?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    相关资源
    最近更新 更多