[RESOLU] [SWIFT] Problème d'image / base64
Me revoilà avec un nouveau soucis tordu
A croire que chaque jour, je tombe sur un problème bizarre..
Alors, cette fois ci, je cherche à convertir une image en base64 afin de l'ajouter à une String pour l'envoyer au php.. dans la théorie, rien de ouf ^^
La façon dont je récupère l'image m'inquiète un peu..
En gros, j'utilise Eureka, je récupère mon formulaire et dedans il y a un champs ImageRow qui me permet de choisir une image dans le téléphone.
let valeursFormulaire = self.form.values(includeHidden: true) // récupère tout les champs du formulaire
for (idvaleur,valeur):(String, Any?) in valeursFormulaire { // Pour chaque champs trouvés
if let laValeur = valeur {
let typeDeChamps = String(laValeur.dynamicType) // recupère le type de champs
switch(typeDeChamps){
case "UIImage": // dans le cas d'une image
print("\(typeDeChamps)"+" "+"\(idvaleur)"+" "+"\(laValeur)")
default:
Données[idvaleur] = String(laValeur)
}
}
Dans laValeur que me ressort mon print, je me retrouve avec ça :
<UIImage: 0x7f94caa88fe0> size {3000, 2002} orientation 0 scale 1.000000
Du coup, je ne sais pas comment utiliser ça pour le convertir en UIImage..
Le but étant d'avoir un UIImage que je puisse convertir ensuite en base64 (là je pense que je pourrais me débrouiller)
Avez-vous une idée ? Une piste ?
Réponses
Si j'ai bien suivi: let image = laValeur as UIImage (ou un truc du genre)
UIImage vers NSData, via UIJPEGRepresentation() (par exemple).
NSData vers NSString via base64encoding.
Chemin inverse ensuite pour revenir.
Ah bah voila, c'est ce qu'il me manquait le : let image = laValeur as! UIImage
J'savais pas qu'on pouvais l'utiliser comme ça ^^
Pour ceux que ça pourrait aider :
Merci Larme
En relisant ton log, il me semble que UIImage retient la rotation (property imageOrientation), mais du coup, si elle n'est pas up, je ne suis pas sûr que UIImagePNGRepresentation() ne le prenne pas en compte. Tu risques d'avoir potentiellement quelques soucis d'orientation par la suite.