如何将由CGContextRef表示的位图图像保存到iPhone的硬盘?

时间:2010-08-15 17:02:31

标签: iphone ipad core-graphics quartz-graphics

我有一个小草图程序,我已经设法使用Quartz2D,但我是iOS平台的新手,我很难弄清楚如何让用户保存他们的草图。我有一个包含草图的CGContextRef,如何保存它以便以后可以检索?一旦保存,我该如何检索它?

非常感谢您的帮助!我现在要继续读这个......

2 个答案:

答案 0 :(得分:3)

有不同类型的CGContexts。您很可能拥有基于屏幕的上下文,但您需要bitmapContext或pdfContext来创建位图或pdf文件。

请参阅UIKit Functions Reference。应该感兴趣的功能是:

  • UIGraphicsBeginImageContext()
  • UIGraphicsGetImageFromCurrentImageContext()
  • UIGraphicsEndImageContext()
  • UIImageJPEGRepresentation()
  • UIImageWriteToSavedPhotosAlbum()
  • UIGraphicsBeginPDFContextToFile()
  • UIGraphicsEndPDFContext()

答案 1 :(得分:3)

以下是我的表现......

保存

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];