J'essaie d'enregistrer un UIImage
to NSData
, puis de lire le NSData
dos d'un nouveau UIImage
dans Swift. Pour convertir le UIImage
en, NSData
j'utilise le code suivant:
let imageData: NSData = UIImagePNGRepresentation(myImage)
Comment puis-je convertir imageData
(c.-à-d. NSData
) À nouveau UIImage
?
let imagePt = UIImage(data: caminhodaImagem)
assez?Utilisez la
imageWithData:
méthode, qui est traduite en Swift parUIImage(data:)
la source
Maintenant, dans Swift 4.2, vous pouvez utiliser la
pngData()
nouvelle méthode d'instance deUIImage
pour obtenir les données de l'imagela source
Détails
Solution 1
Solution 2.1
Utilisation de la solution 2.1
Solution 2.2
Utilisation de la solution 2.2
La représentation d'image prendra beaucoup de ressources CPU et mémoire. Donc, dans ce cas, il vaut mieux suivre plusieurs règles:
- ne pas exécuter jpegData (compressionQuality :) sur la file d'attente principale
- exécuter un seul jpegData (compressionQuality :) simultanément
Faux:
Droite:
Liens
la source
Pour enregistrer en tant que données:
Depuis StoryBoard, si vous souhaitez enregistrer des données "image" sur l'imageView de MainStoryBoard, les codes suivants fonctionneront.
Pour charger "image" dans imageView: Regardez le point d'exclamation "!", "?" de près si c'est tout à fait le même que celui-ci.
Le type "NSData" est automatiquement converti en type "Data" pendant ce processus.
la source
Pour une exécution sûre du code, utilisez
if-let
block withData
pour éviter le crash de l'application &, car la fonctionUIImagePNGRepresentation
renvoie une valeur facultative.Opérations génériques sur les images (comme png et jpg à la fois):
En utilisant l'extension:
la source
Image aux données: -
Données à l'image: -
la source
Swift 5
laissez l'image que vous créez comme UIImage être image
la source