Estoy tratando de rotar una imagen de mapa de bits 90 grados para cambiarla de un formato horizontal a un formato de retrato. Ejemplo:Android gira mapa de bits 90 grados resultados en imagen aplastada. Necesita una verdadera rotación entre vertical y horizontal
[a, b, c, d]
[e, f, g, h]
[i, j, k, l]
girado 90 grados hacia la derecha se convierte
[i, e, a]
[j, f, b]
[k, g, c]
[l, h, d]
con el siguiente código (de un ejemplo de línea) la imagen se gira 90 grados pero retiene t él aparea la relación de aspecto para que termines con una imagen verticalmente aplastada. ¿Estoy haciendo algo mal? ¿Hay algún otro método que deba usar? También estoy dispuesto a rotar el archivo jpeg que estoy usando para crear el mapa de bits si es más fácil.
// create a matrix for the manipulation
Matrix matrix = new Matrix();
// resize the bit map
matrix.postScale(scaleWidth, scaleHeight);
// rotate the Bitmap
matrix.postRotate(90);
// recreate the new Bitmap
Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOriginal, 0, 0, widthOriginal, heightOriginal, matrix, true);
No estoy seguro si entiendo su pregunta correctamente. ¿Desea rotar el diseño de la pantalla cuando cambia la orientación? ¿O desea cambiar la configuración de la pantalla aunque la orientación no cambie? (¡Android gira automáticamente los elementos de la pantalla cuando cambia la orientación!) – Ahmed
Así que quiero cambiar los datos del mapa de bits. En mi aplicación, la cámara está almacenando la imagen de forma incorrecta, de modo que incluso si se toma una fotografía en la orientación "retrato", todavía se carga en orientación "horizontal". Soy capaz de detectar la verdadera orientación a través de los datos EXIF del archivo y quiero rotar el mapa de bits a la orientación correcta. No quiero simplemente cambiar cómo se muestra el mapa de bits, sino cambiar los datos reales para que luego de modificar la imagen pueda guardarse correctamente. – user999764