11
votes

Comment convertir un uiimage en Nsdata ou CFDataref?

Comment convertir un uiimage vers nsdata ou cfdataref ? J'ai besoin de passer un cfdataref à abpersonsonetimageatureata .


0 commentaires

4 Réponses :


22
votes

Cela a fonctionné pour moi, pour une image PNG. Pour d'autres types d'images, je suppose que vous devez simplement trouver l'uiimage correspondant ... Méthode de représentation.

CFDataRef imgDataRef = (CFDataRef)imageData;


2 commentaires

Pourquoi utilisez-vous + [nsdata datawithdata:] ?


Touché. Je suppose que vous pouviez juste faire nsdata * imagétata = uiimagepngrepresentation (image);



7
votes

Vous pouvez utiliser ce xxx pré>

et simplement couler ImageData vers CFDataref CODE> P>

CFDataRef = (CFDataRef) imageData;


1 commentaires

Nsdata * imagétata = uiimagejpegrepresentation (image, 1.0); est très lente aussi la méthode PNG équivalente. Y a-t-il un moyen rapide ???????



3
votes
CFDataRef cfdata = CFDataCreate(NULL, [imageData bytes], [imageData length]);
For a working example click here.Thank you.

0 commentaires

0
votes

Pour ceux qui se demandent quelle est la différence entre nsdata et cfdata , voici l'explication de Apple Docs :

cfdata est "ponté sans frais" avec sa contrepartie de la fondation de cacao, Nsdata. Ce que cela signifie que le type de base de base est interchangeable dans la fonction ou les appels de méthode avec le ponte Objet de fondation. En d'autres termes, dans une méthode où vous voyez une nsdata * Paramètre, vous pouvez passer dans un CFDataref et dans une fonction où vous voyez un paramètre CFDataref, vous pouvez passer dans une instance NSData. Cette s'applique également aux sous-classes concrètes de Nsdata. Voir le ponte sans frais Types Pour plus d'informations sur la pontage sans frais.

Ceci explique pourquoi casting nsdata à cfdata fonctionne.


0 commentaires