2010-09-28 16 views
5

He creado un CALayer (agregué varias formas a la capa, pero en última instancia, tengo un solo CALayer), y estoy teniendo MUCHOS problemas para agregarlo a un CGImage. He encontrado algunas referencias al [CALayer renderInContext:ctx], pero no estoy seguro de cómo implementarlo.CGImage (o UIImage) de un CALayer

¿Alguien ha hecho esto antes?

Respuesta

11

Prueba esto ...

UIGraphicsBeginImageContext(layer.bounds.size); 
[layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
+0

no apta para subprocesos antes de OS 4.0, bla, bla, lalala ... –

+0

últimos documentos establecen que todos los 'UIGraphics * funciones son Context' hilo principal solamente (por lo que no son seguros para subprocesos en ninguna versión de sistema operativo). 'CGBitmapContextCreate' es la función CoreGraphics segura para subprocesos sobre la que' UIGraphicsBeginImageContext' se basa en. – rpetrich

+0

También de los documentos: Discusión Debe llamar a esta función solo cuando un contexto de gráficos basado en mapa de bits es el contexto de gráficos actual. Si el contexto actual es nulo o no fue creado por una llamada a UIGraphicsBeginImageContext, esta función devuelve nil. – TomH

1

Crea un contexto de gráficos de mapa de bits y usa renderInContext: para dibujar la capa en él. Ahora tienes la capa en una imagen.

Cuestiones relacionadas