iPhone SDK反转UIImage的颜色

时间:2010-02-15 00:31:13

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

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

有没有人知道这是否可以通过核心图形库?

干杯

2 个答案:

答案 0 :(得分:14)

我最终找到了一个很好的方法。我没有简单地将原始图像的背景透明化,而是将其设为黑色。现在黑色背景上有白线。然后,这只是一个问题:

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'是黑色背景上带有白线的原始图像。谢谢你的帮助David Sowsy

答案 1 :(得分:-1)

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