2009-06-14 9 views

Respuesta

2

Bueno, un CGImage no es un CALayer, por lo que son, obviamente, dejando algunos pasos por ahí, pero supongo que sabes lo que estás hablando, por lo que la elaboración de un CALayer o lo que sea.

Si su pregunta se refiere a la creación de CGImage s sin necesidad de utilizar un UIImage, puede intentar buscar en las siguientes funciones:

  • CGImageCreateWithJPEGDataProvider
  • CGImageCreateWithPNGDataProvider

Si por casualidad usted conoce de antemano lo tipo de imagen que es, simplemente use el método apropiado. De lo contrario, necesitaría ver la firma del archivo para ver si contiene PNG o JFIF. Por supuesto, esto requiere que implemente un CGDataProvider.

Supongo que esto es exactamente lo que la clase UIImage ya está haciendo. Si desea exprimir cada pedacito de la eficiencia de eso, puede utilizar uno de los métodos siguientes en la clase UIImage:

+ (UIImage *)imageWithContentsOfFile:(NSString *)path 
+ (UIImage *)imageWithData:(NSData *)data 

La única diferencia entre estos métodos y

+ (UIImage *)imageNamed:(NSString *)name 

es que imageNamed: almacena en caché la imagen. Si usa uno de los primeros métodos, no es así.

+0

Gracias por eso. CGImageCreateWithJPEGDataProvider y CGImageCreateWithPNGDataProvider eran exactamente lo que estaba buscando. –

17

Prueba esto:

layer.contents = (__bridge id)[ uiimage CGImage ] ; 

HTH

Cuestiones relacionadas