Je reçois des erreurs EXEC_BAD_ACCESS dans un appel CGContextDrawImage et j'essaie de le retracer. J'ai une image PNG et exécute une UIImagePNGRepresentation o elle me donne une instance NSData.Comment convertir NSData en CGDataProviderRef sur iphone sdk?
J'ai besoin de convertir ceci en instance CGImageRef, donc je peux exécuter la méthode CGImageCreateWithPNGDataProvider avec ce CGImageRef. J'ai essayé de deux façons: 1) Pour le lancer.
CGImageRef ref = (CGDataProvider) nsdata;
2) Pour exécuter CGDataProviderCreateWithCFData (nsdata);
Le premier cas renvoie l'image vide, bien que la commande n'échoue pas. La raison pour laquelle j'ai essayé le second cas, même si j'ai NSData et pas CFData, c'est parce que je me souviens avoir lu les deux cas. Quelle que soit la raison, elle échoue à cause de cela.
Y at-il un moyen que je peux utiliser mon PNG NSData pour créer un CGImage qui n'est pas corrompu? S'il vous plaît aider.
THanks
'image.CGImage' est certainement mieux que' (CGImageRef) [(id) CGImageCreateWithPNGDataProvider ((CGDataProviderRef) [(id) CGDataProviderCreateWithNSData ((CFDataRef) UIImagePNGRepresentation (image)) autorelease ], 0,0,0) autorelease] ' –
Notez que UIKit n'est pas sûr pour les threads, donc créer des instances' UIImage' sur les threads d'arrière-plan peut entraîner des problèmes. Dans certains cas, il est préférable de créer directement un 'CGImageRef'. – cheeesus
@cheeesus, selon la documentation d'Apple (https://developer.apple.com/reference/uikit/uiimage), il est sécuritaire de créer des instances UIImage dans les threads d'arrière-plan: * "La nature immuable des objets image signifie aussi qu'ils sont » – Arda