2011-05-03 15 views

Respuesta

26

Algo como esto:

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

Gracias! Con eso, creé un método conveniente 'UIImage * UIGraphicsGetImageFromImageContext (CGContextRef context)' para usar. – samwize

+1

Esto solo funcionará si 'context' es un CGBitmapContext; probablemente no funcionará en ningún otro tipo de CGContext. @samwize: Deberías nombrarlo de otra manera. Los prefijos son espacios de nombres por convención; Apple puede agregar una función llamada 'UIGraphicsGetImageFromImageContext', pública o privada, en cualquier momento, y si lo hacen, la suya causará problemas. Usa tu propio prefijo. –

+0

¡Gracias por el asesoramiento! – samwize

2

Actualización de Swift 3, se trata de una función de conveniencia que toma un CGContext y devuelve un UIImage. Tenga en cuenta que ya no necesita liberar el contexto cuando haya terminado con él en Swift 3.

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