173 votes

convertir UIImage NSData

J’utilise ce code dans mon application qui va m’aider à envoyer une photo.

Cependant, j’ai une image Découvre avec une image. Je n’ai aucun fichier dans appbundle mais l’image de mon côté. Comment puis-je changer le code ci-dessous ? Quelqu'un peut-il me dire comment je peux convertir à ?

286voto

sergio Points 52422

Essayez l'une des opérations suivantes, selon votre format de l'image:

UIImageJPEGRepresentation

Retourne les données de l'image au format JPEG.

NSData * UIImageJPEGRepresentation (
   UIImage *image,
   CGFloat compressionQuality
);

UIImagePNGRepresentation

Retourne les données de l'image au format PNG

NSData * UIImagePNGRepresentation (
   UIImage *image
);

Voici les docs.

EDIT:

si vous souhaitez accéder à la crue octets qui composent le UIImage, vous pouvez utiliser cette approche:

CGDataProviderRef provider = CGImageGetDataProvider(image.CGImage);
NSData* data = (id)CFBridgingRelease(CGDataProviderCopyData(provider));
const uint8_t* bytes = [data bytes];

Cela vous donnera le faible niveau de représentation de l'image en pixels RVB. (Omettre l' CFBridgingRelease peu si vous n'êtes pas à l'aide de l'ARC).

165voto

Radix Points 1915
NSData *imageData = UIImagePNGRepresentation(myImage.image);

26voto

FormigaNinja Points 57

Si vous avez une image à l’intérieur d’un UIImageView appelé, par exemple, myImageView, vous pouvez faire le ce qui suit :

Convertir votre image en utilisant UIImageJPEGRepresentation() ou UIImagePNGRepresentation() comme ceci :

Vous pouvez aussi mettre ce code dans un bloc GCD et exécuter dans un autre thread, montrant un UIActivityIndicatorView pendant le processus de...

24voto

Jemythehigh Points 97

Créer la référence de l’image...

affichage d’image dans l’image vue... imagedisplay est la référence d’imageview

convertir en NSData en passant UIImage référence et fournir la compression qualité en valeurs float

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X