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