我有一個草圖程序,我已經使用Quartz2D將它們放在一起,但我對iOS平臺很陌生,而且我很難弄清楚如何讓用戶保存草圖。我有一個包含草圖的CGContextRef,我如何保存它以便稍後可以檢索它?一旦保存,我如何檢索它?如何將由CGContextRef表示的位圖圖像保存到iPhone的硬盤驅動器?
非常感謝您的幫助!我現在要繼續閱讀...
我有一個草圖程序,我已經使用Quartz2D將它們放在一起,但我對iOS平臺很陌生,而且我很難弄清楚如何讓用戶保存草圖。我有一個包含草圖的CGContextRef,我如何保存它以便稍後可以檢索它?一旦保存,我如何檢索它?如何將由CGContextRef表示的位圖圖像保存到iPhone的硬盤驅動器?
非常感謝您的幫助!我現在要繼續閱讀...
這裏是我是如何做到的?
保存
CGImageRef imageRef = CGBitmapContextCreateImage(bitmapContext);
UIImage* image = [[UIImage alloc] initWithCGImage:imageRef];
NSData* imageData = UIImagePNGRepresentation(image);
[imageData writeToFile:filePath atomically:YES];
檢索
UIImage* image = [UIImage imageWithContentsOfFile:filePath];
CGImageRef imageRef = [image CGImage];
有不同類型的CGContexts。你很可能有一個基於屏幕的上下文,但你需要一個bitmapContext或pdfContext來創建一個位圖或PDF文件。
查看UIKit Functions Reference。這應該是感興趣的功能是:
UIGraphicsBeginImageContext()
UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIImageJPEGRepresentation()
UIImageWriteToSavedPhotosAlbum()
UIGraphicsBeginPDFContextToFile()
UIGraphicsEndPDFContext()
-1的代碼泄漏imageRef和形象。 – 2010-08-16 01:37:08
我沒有包含發佈聲明,但他們在那裏。 – BeachRunnerFred 2010-08-16 02:13:37
+1代碼snippits不會泄漏內存 – 2010-08-23 20:57:24