Как сохранить растровое изображение, представленное CGContextRef, на жестком диске iPhone? - PullRequest
1 голос
/ 15 августа 2010

У меня есть небольшая программа для создания эскизов, которую мне удалось создать вместе с помощью Quartz2D, но я очень плохо знаком с платформой iOS и не могу понять, как позволить пользователю сохранить свой эскиз.У меня есть CGContextRef, который содержит эскиз, как я могу сохранить его, чтобы впоследствии его можно было извлечь?Как только он будет сохранен, как я могу его восстановить?

Заранее большое спасибо за вашу помощь!Я собираюсь продолжить читать об этом сейчас ...

Ответы [ 2 ]

3 голосов
/ 16 августа 2010

Вот как я это сделал ...

Сохранение

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];
3 голосов
/ 15 августа 2010

Существуют разные типы CGContexts.Скорее всего, у вас есть контекст на основе экрана, но вам потребуется либо bitmapContext, либо pdfContext, чтобы создать растровое изображение или pdf-файл.

См. Справочник функций UIKit .Интересующие функции:

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