Définir l'image de l'orientation à l'aide ExifInterface
setRotation method
dans Camera.Parameters
ne fonctionne pas dans tous les appareils. Quelqu'un suggère de modifier manuellement l' EXIF
d'informations pour résoudre le problème. Pouvez-vous me donner un court exemple sur la façon de définir la exif
informations avec ExifInterface
de manière à définir une image en orientation portrait?
private int savePicture(byte[] data)
{
File pictureFile = getOutputMediaFile();
if (pictureFile == null)
return FILE_CREATION_ERROR;
try {
FileOutputStream fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
} catch (FileNotFoundException e) {
return FILE_NOT_FOUND;
} catch (IOException e) {
return ACCESSING_FILE_ERROR;
}
return OKAY;
}
J'ai essayé avec ceci:
try {
ExifInterface exifi = new ExifInterface(pictureFile.getAbsolutePath());
exifi.setAttribute(ExifInterface.TAG_ORIENTATION, String.valueOf(ExifInterface.ORIENTATION_ROTATE_90));
exifi.saveAttributes();
} catch (IOException e) {
Log.e(TAG, "Exif error");
}
mais rien de changer lorsque je visualise les photos de la galerie android.
OriginalL'auteur user2923045 | 2013-11-03
Vous devez vous connecter pour publier un commentaire.
Pour ceux qui veulent écrire ces informations EXIF, voici un peu de code:
alors que
orientation
est l'une des orientations standard, c'est à direExifInterface.ORIENTATION_ROTATE_{90,180,270}
.Hrm... je ne trouve aucune excuse d'autres que je n'ai pas de défilement à droite de la partie supérieure de post... 🙁
pas de soucis. Bon à savoir, je n'ai pas raté quelque chose
OriginalL'auteur Thomas Keller
Si l'orientation est sauvegardé dans un fichier, mais n'apparaît pas dans la galerie, il peut être en raison de l'orientation est mis en cache dans MediaStore. Si vous avez besoin d'essayer de mettre à jour cette information il y a aussi.
Voici le code ciselée (non testé)
OriginalL'auteur httpdispatch
Bien, j'ai été coincé dans ce genre de problème, et j'ai essayé la solution que vous travaillez sur et a terminé en utilisant la Matrice de la fonction.
Ce que les images que j'ai prise, c'était tout de paysage, de sorte que dans l'application, j'ai juste appliqué le code ci-dessous, et il a bien fonctionné:-
La façon dont vous manipulez le problème, il va dégrader les performances de l'application, utiliser à bon escient, il n'y a pas besoin de gérer les images comme la façon de vous expliquer, enregistrer l'image en tant qu'il est pas nécessaire d'appliquer toutes les entrées vous explique, lorsque vous avez besoin de le montrer, le faire au moment de l'exécution et de traiter avec l'affichage des images à bon escient, il ne sera pas dégrader ses performances.
Je suis en désaccord avec vous Bette. Je veux utiliser le android galerie pour montrer les images et la galerie android affiche avec une mauvaise orientation.
Sur ce point vous êtes en désaccord? Pourquoi voulez-vous faire de vos images visibles dans la galerie? Voir les liens, s'ils sont utiles pour vous. android.googlesource.com/platform/frameworks/base/+/master/... stackoverflow.com/questions/5186795/...
Non, je veux dire que j'ai pas envie de développer ma propre galerie. Pour naviguer dans la photo que je fais à l'aide de l'application appareil photo, je suis en train d'élaborer je veux utiliser l'application galerie déjà installé dans n'importe quel appareil. Mais, les photos prises lorsque le téléphone est en mode portrait à l'aide de l'exemple de code dans le android.développement et dans plusieurs tutoriels en ligne, sont inutilisables parce qu'ils sont visualisés dans le mauvais sens.
OriginalL'auteur Bette Devine