2011-05-03 5 views

Répondre

26

Quelque chose comme ceci:

-(UIImage*)doImageOperation 
{ 
    // Do your stuff here 
    CGImageRef imgRef = CGBitmapContextCreateImage(context); 
    UIImage* img = [UIImage imageWithCGImage:imgRef]; 
    CGImageRelease(imgRef); 
    CGContextRelease(context); 
    return img; 
} 
+0

Merci! Avec cela, j'ai créé une méthode pratique 'UIImage * UIGraphicsGetImageFromImageContext (contexte CGContextRef)' à utiliser. – samwize

+1

Cela ne fonctionnera que si 'context' est un CGBitmapContext; il ne fonctionnera probablement pas sur un autre type de CGContext. @samwize: Vous devriez le nommer quelque chose de différent. Les préfixes sont des espaces de noms par convention; Apple peut ajouter une fonction nommée 'UIGraphicsGetImageFromImageContext', publique ou privée, à tout moment, et si c'est le cas, le vôtre causera des problèmes. Utilisez votre propre préfixe. –

+0

Merci pour le conseil! – samwize

2

Mise à jour pour Swift 3, c'est une fonction pratique qui prend un CGContext et retourne un UIImage. Notez que vous n'avez plus besoin de libérer le contexte lorsque vous en avez fini avec Swift 3.

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