2010-02-15 40 views
4

我有一個iPhone應用程序,允許用戶用手指在屏幕上繪製某些東西。他們在黑色背景上畫一條白線。但是,當我將這個圖像上傳到網絡服務器時,線路本身是白色的。我一直在努力通過核心圖形庫來尋找反轉繪製圖像顏色的方法。沒有背景設置,因此它應該是透明的。做一個圖像反轉應該把白色換成黑色。iPhone SDK反轉UIImage的顏色

有誰知道這是否有可能通過核心圖形庫?

乾杯

回答

-1

是的。您應該可以通過調用CGContext在CALayer中執行此操作,或直接使用CGImage上的緩衝區執行此操作。還有其他一些關於如何在Stackoverflow上使用UIView保存圖像的例子。

+0

您可以在這裏添加幾條這些示例的鏈接嗎? – Palimondo 2011-03-04 06:16:08

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(); 

變量「形象」是用白線在黑色背景上的原始圖像。感謝您的幫助David Sowsy

+0

你是如何將背景顏色設置爲無色的? – Slee 2010-11-27 15:56:34