7
votes

ImageOrientation retourne, mais la photo montre Upsidedown

Je saisis des photos de la photothèque iPad. J'ai pris quelques photos de test en mode paysage, à la fois avec le bouton Accueil iPad sur le côté gauche, puis sur le côté droit.

Donc, dans mon application, pour une raison quelconque, certaines des photos montrent Upsidown. J'ai vérifié leur propriété imageOrientation et ils sont tous 0 (ce qui signifie qu'ils sont uiimageorientationup ). Cela signifie donc que je ne peux même pas dire quelles photos à faire pivoter.

Qu'est-ce qui se passe et comment puis-je dire quelles photos doivent être tournées? Merci


3 Réponses :


4
votes

Un uiImage a une image imageOrientation, qui indique à l'UIImageView et à d'autres consommateurs d'UIImage de faire pivoter les données d'image brute. Il y a de bonnes chances que ce drapeau soit enregistré dans les données EXIF ​​dans l'image JPEG téléchargée, mais le programme que vous utilisez pour le voir ne respecte pas ce drapeau.

Pour faire pivoter l'uImage à l'affichage correctement lorsque vous avez téléchargé, vous pouvez utiliser Une catégorie comme celle-ci: Dans .h fichier

uiimagefixorientation.h xxx

uiimagefixorientation.m xxx

et appelez ceci Fonction lors de la capture Image Enregistrer ou sélectionnez Image dans la galerie.


2 commentaires

Bonjour, merci pour votre fonction. Cependant, un problème potentiel est que les fichiers à l'envers réduisent tous l'uiimageorientation. Aucun d'entre eux ne retourne rien d'autre que 0, qui est problématique.


Pouvez-vous m'envoyer le code pour que je vais l'essayer de mon côté .et je résolvez une erreur r.



1
votes

Sans entrer dans votre code d'image, pourrait-il être dû au système de coordonnées retourné sur iOS?

https://developer.apple. com / bibliothèque / mac / documentation / cacao / conceptuel / cocoadrawingguide / transforms / transforme.html

~ snip:

Configuration de votre vue pour utiliser des coordonnées renversées

La première étape que vous devez prendre pour mettre en œuvre les coordonnées renversées consiste à choisir l'orientation par défaut de votre vue. Si vous préférez utiliser des coordonnées retournées, il existe deux façons de configurer le système de coordonnées de votre vue avant de dessiner:

remplacer la méthode isflipped de votre vue et retourne oui. Appliquer un retour transformer à votre contenu immédiatement avant le rendu.

Donc, dans votre vue, vous pouvez essayer d'ajouter - (bool) isflipped et retourner oui et testez si cela fait toute différence.


0 commentaires

1
votes

Je faisais également face au même problème. Utilisez cette fonction pour résoudre: xxx


0 commentaires