Recibo errores EXEC_BAD_ACCESS en una llamada CGContextDrawImage y trato de rastrearlo. Tengo una imagen PNG y ejecuto una UIImagePNGRpresentación o me da instancia de NSData.Cómo convertir NSData a CGDataProviderRef en iphone sdk?
Necesito convertir esto a la instancia CGImageRef, así que puedo ejecutar el método CGImageCreateWithPNGDataProvider con este CGImageRef.
Intenté dos formas: 1) Para lanzarlo.
CGImageRef ref = (CGDataProvider) nsdata;
2) Para ejecutar CGDataProviderCreateWithCFData (nsdata);
El primer caso devuelve la imagen vacía, aunque el comando no falla. La razón por la que probé el segundo caso, aunque tengo NSData y no CFData, es porque recuerdo haber leído ambos. Cualquiera sea la razón, está fallando debido a esto.
¿Hay alguna forma de que pueda usar mi PNG NSData para crear una CGImage que no esté dañada? Por favor ayuda.
THanks
'image.CGImage' es definitivamente mejor que' [(id) CGImageCreateWithPNGDataProvider ((CGDataProviderRef) [(id) CGDataProviderCreateWithNSData ((CFDataRef) UIImagePNGRepresentation (imagen)) autorelease (CGImageRef) ], 0,0,0) liberación automática] ' –
Tenga en cuenta que UIKit no es seguro para subprocesos, por lo que la creación de instancias' UIImage' en subprocesos de fondo puede ocasionar problemas. En algunos casos, es mejor crear directamente un 'CGImageRef'. – cheeesus
@cheeesus, de acuerdo con la documentación de Apple (https://developer.apple.com/reference/uikit/uiimage), es seguro crear instancias de UIImage en hilos de fondo: * "La naturaleza inmutable de los objetos de imagen también significa que son seguro para crear y usar desde cualquier hilo. "* – Arda