comment charger une image à partir d'un chemin local ios swift (par voie)
Dans mon application je suis de stocker une image dans le stockage local et je sauve le chemin de l'image dans ma base de données. Comment puis-je charger l'image de ce chemin?
Ici c'est le code que j'utilise pour enregistrer l'image:
let myimage : UIImage = UIImage(data: data)!
let fileManager = NSFileManager.defaultManager()
let urls = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
let documentDirectory = urls[0] as NSURL
print(documentDirectory)
let currentDate = NSDate()
let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = .NoStyle
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let convertedDate = dateFormatter.stringFromDate(currentDate)
let imageURL = documentDirectory.URLByAppendingPathComponent(convertedDate)
imageUrlPath = imageURL.absoluteString
print(imageUrlPath)
UIImageJPEGRepresentation(myimage,1.0)!.writeToFile(imageUrlPath, atomically: true)
Et c'est le chemin où mon image stockée
file:///var/mobile/Containers/Data/Application/B2A1EE50-D800-4BB0-B475-6C7F210C913C/Documents/2016-06-01%2021:49:32
C'est la façon dont j'ai essayé de récupérer l'image, mais il n'est pas afficher quoi que ce soit.
let image : String = person?.valueForKey("image_local_path") as! String
print(person!.valueForKey("image_local_path")! as! String)
cell.img_message_music.image = UIImage(contentsOfFile: image)
- Cette ligne:
imageUrlPath = imageURL.absoluteString
doit êtreimageUrlPath = imageURL.path
- Par ailleurs, vous ne devez pas prendre
data
, de les convertir en unUIImage
, puis le reconvertir en unNSData
avecUIImageJPEGRepresentation
. Il suffit d'enregistrer l'originaldata
. - Double Possible de UIImage(contentsOfFile:) retour néant malgré fichier existant dans les caches de l'annuaire
- J'ai été dans le même scénario, sachez que votre B2A1EE50xx dossier change chaque fois que vous exécutez/construire/mettre à jour votre application comme @zsyesenko dit ci-dessous. Donc, vous devez écrire à
imageUrl
de ne pasimageUrlPath
et enregistrez le nom de votre fichier (convertedDate
sur votre cas) n'est pas le chemin
Vous devez vous connecter pour publier un commentaire.
Dossier /B2A1EE50- ... change à chaque fois que vous exécutez l'application.
Qui fonctionne pour moi est de stocker le nom de fichier et obtenir les documents du dossier.
Swift 3 +
Créer des accesseurs pour le dossier
Enregistrer l'image :
Chargement de l'image :
Vous pouvez également essayer cette.
if NSFileManager.defaultManager().fileExistsAtPath(imageUrlPath) {}
let url = NSURL(string: imageUrlPath)
let data = NSData(contentsOfURL: url!)
imageView.image = UIImage(data: data!)
Code Final:
Ce code fonctionne pour moi
Remplacer
absoluteString
avecpath
Cet exemple de code peut sauver quelqu'un quelques frappes,
écrire une UIImage sur le disque dans votre propre répertoire:
plus tard pour lire cette image ...
.. et la convertir à une UIImage comme dans une UIImageView
Voici les très pratique, les fonctions utilisées ci-dessus...
et
et
Swift 4:
1.cellule.image.sd_setShowActivityIndicatorView(vrai)
2.cellule.image.sd_setIndicatorStyle(.gris)
3.cellule.image.image = UIImage(contentsOfFile: urlString!)