[Résolu] Enregistrer une image inclinée dans le DocumentDirectory
busterTheo
Membre
Bonjour,
voilà comment j'enregistre une image :
let imagePickee: UIImage = info[UIImagePickerControllerOriginalImage] as! UIImage
let screenSize: CGSize = UIScreen.mainScreen().bounds.size
let newImageScaled: UIImage = scaledImageWithImage(imagePickee, size: CGSize(width: screenSize.width, height: screenSize.height))
let documentsDir = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask, true)[0] as! String
let pathFull: NSString = documentsDir + "/" + "nomImage"
let pngFullData: NSData = UIImagePNGRepresentation(newImageScaled)
pngFullData.writeToFile(pathFull as String, atomically: true)
Je récupère ensuite l'image ainsi :
let documentsDir = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask, true)[0] as! String
let pathFull: NSString = documentsDir + "/" + "nomImage"
if let uneImage:UIImage = UIImage(contentsOfFile: pathFull as String) {
self.imageViewEtapes.image = uneImage
}
Puis je lui applique une orientation à la main (avec des poignées ou un slider, peu importe).
Je parviens à la réafficher, inclinée.
Mais j'aurai besoin de ne pas avoir à la ré-incliner à chaque fois que je l'affiche.
J'aimerai d'abord la ré-enregistrer (genre avec un updateToFile) déjà inclinée, pour ensuite l'afficher sans l'incliner (puisqu'elle le sera déjà ).
J'espère être clair.
J'ai cherché partout, je ne trouve rien qui me concerne.
Merci d'avance.
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu n'as pas besoin d'enregistrer l'image inclinée, juste de sauvegarder son inclinaison. Et d'incliner le container (un UIImageView je présume) à l'affichage.
Tu pourrais dessiner l'image dans un CGBitmapContext dont tu aurais modifié la matrice de transformation, et ensuite convertir le CGBitmapContext en CGImage pour l'enregistrer. Cependant, je suis d'accord avec Draken: pourquoi ne pas simplement noter l'angle de la rotation dans le fichier ?
C'est ce que je fais depuis le début, mais je combine cela avec le zoom, donc avec les trasforrm, et je galère cher.
Cela fait plusieurs fois que j'essaie en repensant la chose, mais ça déconne grave.
C'est pour ça que j'aimerai l'enregistrée inclinée.
Voici un bout de code :
Puis
Cherche "swift uiview snapshot" sur google, tu trouveras des topics sur la manière de récupérer le contenu d'une vue dans une image bitmap.
Ah ouais Draken, ça a l'air pas mal ce truc. Merci.
Je vais essayer.
Un grand merci, Draken.
C'est génial.
ça marche impeccable.
Par contre sur ipad, il me fait une image toute noire.
Pourtant, le fichier est bien enregistré.
J'ai cherché partout, et je ne trouve rien de probant.
Voici mon code, si quelqu'un a une idée.