Как я могу получить UIImage из CGContextRef? - PullRequest
8 голосов
/ 03 мая 2011

У меня есть CGContextRef, и я рисовал с помощью растрового контекста.

Теперь я хотел бы вызвать функцию для получения UIImage для CGContextRef.Как я могу это сделать?

Ответы [ 2 ]

26 голосов
/ 03 мая 2011

Примерно так:

-(UIImage*)doImageOperation
{
  // Do your stuff here
  CGImageRef imgRef = CGBitmapContextCreateImage(context);
  UIImage* img = [UIImage imageWithCGImage:imgRef];
  CGImageRelease(imgRef);
  CGContextRelease(context);
  return img;
}
4 голосов
/ 27 октября 2016

Обновлено для Swift 3, это удобная функция, которая принимает CGContext и возвращает UIImage. Обратите внимание, что вам больше не нужно освобождать контекст, когда вы закончите с ним в Swift 3.

func imageFromContext(_ context: CGContext) -> UIImage? {
    guard let cgImage = context.makeImage() else { return nil }
    return UIImage.init(cgImage: cgImage)
}
...