Pregunta

Publiqué esto en los foros de desarrollo de Android, pero quería llegar aquí.

Una de las actividades en nuestra aplicación fue tomar una foto. La vista previa de la imagen muestra la forma correcta en la pantalla en 1.5 & amp; 1.6, pero cuando se guarda, guarda el jpg 90 girado.

Puedo girarlo en tiempo real cuando se muestra, y supongo que podría volver a guardarlo una vez guardado. Mi problema es que me gustaría guardarlo correctamente al tomar la foto.

  

Mi aplicación mientras está compilada en 1.5 funciona bien. Tuve algunos problemas de memoria w /      1.6 debido al tamaño de la imagen, lo cual fue extraño porque el tamaño de la imagen aumentó      al tomar fotos tomando una foto con titular de superficie / captura de imágenes      llamar de vuelta. Parece que he arreglado la re-visualización de esas imágenes cambiando el tamaño      utilizando una matriz de bitmapfactory. Pero mi cámara ahora está girando      Todo 90 grados. Parece que mi anulación de superficie cambió      no hace nada, que es donde estaba configurando la rotación en 90 (no puedo      recuerda por qué, fue hace 10 meses!). He intentado rotar el      Parámetros de parámetros de cámara a 90 grados, 0 grados. No parece      para hacer algo ... algún pensamiento?

¿Fue útil?

Solución

Los controladores de la cámara no conocen la orientación del dispositivo. En 1.5 y 1.6, debe llamar a parameters.set (" rotación " ;, grado) para informar a los conductores sobre la rotación antes de llamar a takePicture (). En 2.0, hay una nueva API setRotation (ver más abajo). Tenga en cuenta que algunos dispositivos rotan las imágenes completas por usted y otros simplemente configuran la orientación en el encabezado EXIF.

http://developer.android.com /reference/android/hardware/Camera.Parameters.html#setRotation(int)

  

Establece la orientación del dispositivo en grados. Por ejemplo, supongamos que la posición natural del dispositivo es el paisaje. Si el usuario toma una imagen en modo horizontal en una resolución de 2048x1536, la rotación debe establecerse en 0. Si el usuario gira el teléfono 90 grados en el sentido de las agujas del reloj, la rotación debe establecerse en 90. Las aplicaciones pueden usar OrientationEventListener para configurar este parámetro. El controlador de la cámara puede establecer la orientación en el encabezado EXIF ??sin rotar la imagen. O el conductor puede rotar la imagen y la miniatura EXIF. Si se gira la imagen Jpeg, faltará la orientación en el encabezado EXIF ??o 1 (la fila # 0 es la parte superior y la columna # 0 es el lado izquierdo).    Parámetros
   rotación La orientación del dispositivo en grados. La rotación solo puede ser 0, 90, 180 o 270

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top