0

J'ai une application qui prend des photos à partir d'une caméra ou d'une galerie et affiche le résultat dans une vue d'image.Toutes les images orientées verticalement ne sont étrangement autorotées que sur certains appareils

Je ne reçois que l'image avec le fournisseur de contenu et d'utiliser cette fonction à l'échelle

public Bitmap scaleim(Bitmap bitmap) { 
     ... 
     Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, resizedWidth, resizedHeight, false); 
     return scaledBitmap; 
    } 

Dans mes appareils avec Android tout 5 fonctionne bien, maintenant je l'ai testé la même application sur un mon appareil ami avec Android 7, et chaque image orientée verticalement est automatiquement tournée en orientation horizontale. Cela semble vraiment bizarre et je n'ai aucune idée de ce qui cause le problème.

Répondre

0

Le problème n'est pas dans la mise à l'échelle mais les images capturées fonctionnent différemment selon le matériel. Avant de commencer la mise à l'échelle qui doit être pivotée selon les périphériques appropriés. Ici, il est code suivant:

Matrix matrix = new Matrix(); 
    matrix.postRotate(getImageOrientation(url)); 
    Bitmap rotatedBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), 
    bitmap.getHeight(), matrix, true) 

public static int getImageOrientation(String imagePath){ 
    int rotate = 0; 
    try { 

     File imageFile = new File(imagePath); 
     ExifInterface exif = new ExifInterface(
       imageFile.getAbsolutePath()); 
     int orientation = exif.getAttributeInt(
       ExifInterface.TAG_ORIENTATION, 
       ExifInterface.ORIENTATION_NORMAL); 

     switch (orientation) { 
     case ExifInterface.ORIENTATION_ROTATE_270: 
      rotate = 270; 
      break; 
     case ExifInterface.ORIENTATION_ROTATE_180: 
      rotate = 180; 
      break; 
     case ExifInterface.ORIENTATION_ROTATE_90: 
      rotate = 90; 
      break; 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return rotate; 
} 
+0

Merci pour la réponse, mais je ne peux pas trouver un moyen valable pour obtenir le chemin du fichier de uri avec cette méthode et me retourne FileNotFoundException. Avez-vous des suggestions à ce sujet? – AndreaF

+0

Je crois qu'il devrait avoir un chemin avant de se tourner vers un bitmap. scaleim (bitmap bitmap) – QuokMoon