Une visionneuse d'image est censée examiner l'étiquette EXIF et faire pivoter l'image en fonction de l'étiquette d'orientation. Cela permet aux applications d'appareil photo et aux logiciels similaires de sauvegarder les images dans n'importe quelle orientation, sans avoir à faire pivoter l'image avant de l'enregistrer.
Les bibliothèques comme Glide et Picasso fera pour vous, si vous leur donnez accès à la pleine JPEG (par exemple, file
Uri
, content
Uri
, https
URL). C'est parce qu'ils ont accès à la fois les étiquettes EXIF et le ImageView
résultant, et ainsi ils peuvent dire le ImageView
pour faire pivoter l'image.
Cependant, tout le monde n'utilise pas de telles bibliothèques. ImageView
à lui seul traite des choses comme Bitmap
, où ces étiquettes EXIF ont été perdues dans le processus de décodage.
Vous, comme l'auteur d'une application de la caméra, ont deux principales options ici:
Vous pouvez examiner les balises EXIF, voir que l'image doit être tournée, faites tourner vous-même, et enregistrez le rotation de l'image (suppression de l'étiquette d'orientation mais organisation pour retenir les autres). Cependant, cela peut échouer avec un , en particulier pour les images d'appareil photo, car ces images ont tendance à être grandes.
Vous pourriez hausser les épaules et passer à autre chose, car ce n'est vraiment pas votre problème. Comme vous le constatez, les autres applications de galerie ne présentent pas le problème, car elles ont été testées correctement et l'application de galerie d'origine que vous avez essayée ne l'a pas été.
Si vous allez avec l'option # 1, il se transforme en option # 2 si vous obtenez le OutOfMemoryError
.
Tirez l'une des images hors de votre appareil et d'examiner en utilisant 'exiftool' ou quelque chose. Vous pouvez également mélanger du code qui utilise l'édition 'com.android.support: exifinterface' de' ExifInterface'. Dans les deux cas, vous cherchez à voir s'il existe une balise EXIF d'orientation avec la valeur attendue. Si tel est le cas, le problème n'est pas de sauvegarder l'image, mais un bogue dans l'application de la galerie que vous utilisez. Nous vous invitons à essayer de faire pivoter l'image manuellement avant de l'enregistrer (et de supprimer la balise d'orientation), mais vous n'avez peut-être pas assez d'espace pour le faire. – CommonsWare
Si, OTOH, cette balise est manquante, alors il y a peut-être quelque chose qui ne va pas dans la façon dont vous sauvegardez l'image, et cela nécessiterait un [mcve]. – CommonsWare
J'ai couru exiftool sur l'un des selfies et je reçois une orientation Tag: 'Rotate 270 CW'. Donc je suppose que c'est quelque chose qui ne va pas avec la galerie? – barouf