Red de conocimiento informático - Conocimiento informático - Cómo solucionar el problema de rotar fotos seleccionadas de la galería en teléfonos Android Samsung

Cómo solucionar el problema de rotar fotos seleccionadas de la galería en teléfonos Android Samsung

Recientemente resolví un problema que me ha estado dando dolor de cabeza durante mucho tiempo, que es el problema de la rotación de fotos en los teléfonos móviles Samsung. Este proyecto tiene la función de cargar imágenes y luego implica tomar fotografías y seleccionarlas del álbum. Otros teléfonos móviles están bien sin problemas. Solo después de tomar una fotografía con un teléfono móvil Samsung, verá claramente que la foto se rotará y luego podrá encontrar la imagen rotada de acuerdo con la ruta. . Finalmente encontré la solución. Podemos leer el ángulo de rotación en la información exif (archivo de imagen intercambiable) en la foto de acuerdo con la ruta de la imagen. En cuanto a este EXIF, puedes leer el artículo de Daniel

EXIF ​​en Android

Según la depuración, se puede encontrar claramente que el ángulo de rotación de la foto tomada con el teléfono móvil Samsung es de 90 grados, mientras que el ángulo de rotación de otros teléfonos móviles es de 0 grados.

Tome una mira el código:

/** * readPictureDegree(String path) { int grado = 0; prueba { Ejemplo de información Exif. ORIENTATION_ROTATE_90: grado = 90; caso ExifInterface.ORIENTATION_ROTATE_180: grado = 180; caso ExifInterface.ORIENTATION_ROTATE_270: grado = 270; ; } return grado; }

Luego, solo necesitamos rotar la imagen de acuerdo con el ángulo de rotación

public static Bitmap toturn(Bitmap img){ Matrix Matrix = new Matrix() ; matriz .postRotate(90); /* Voltear 90 grados*/ int ancho = img.getWidth(); int altura = img.getHeight(); , verdadero ); return img; }

Solución simple, ¿no es perfecta?

Ese es el contenido completo de este artículo, espero que os guste.