Tengo un CGContextRef e hice mis cosas de dibujo con el contexto del mapa de bits.¿Cómo obtengo UIImage de un CGContextRef?
Ahora, me gustaría tener una llamada de función para obtener un UIImage para CGContextRef. ¿Cómo puedo hacer eso?
Tengo un CGContextRef e hice mis cosas de dibujo con el contexto del mapa de bits.¿Cómo obtengo UIImage de un CGContextRef?
Ahora, me gustaría tener una llamada de función para obtener un UIImage para CGContextRef. ¿Cómo puedo hacer eso?
Algo como esto:
-(UIImage*)doImageOperation
{
// Do your stuff here
CGImageRef imgRef = CGBitmapContextCreateImage(context);
UIImage* img = [UIImage imageWithCGImage:imgRef];
CGImageRelease(imgRef);
CGContextRelease(context);
return img;
}
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)
}
Gracias! Con eso, creé un método conveniente 'UIImage * UIGraphicsGetImageFromImageContext (CGContextRef context)' para usar. – samwize
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. –
¡Gracias por el asesoramiento! – samwize