Spanish FOTO HORIZONTAL CON MOVIL EN VERTICAL

Edu Portu

Member
Licensed User
Longtime User
Buenos dias,
Estoy haciendo un APP con el movil en modo vertical (portrait). La cosa es que en este modo quiero hacer una foto pero que sea el formato mas ancho que alto (que la foto sea "horizontal" aunque el movil este "vertical").
Uso la clase CAMERAEXCLASS
Lo primero inicializo la camara:

INICIALIZAR CAMARA:
Camara.Initialize(PnlFoto, False, Me, "Camara")
wait for Camara_Ready (Success As Boolean)
If Success Then
    Camara.SetPreviewSize(800, 600)
    Camara.SetPictureSize(800, 600)
    Camara.StartPreview
Else
    ToastMessageShow("No se puede abrir la camara.", True)
End If

Con esto ya veo la previsualizacion de lo que quiero fotografiar, en formato horizontal aunque el movil este en vertical, tal y como se ve en la primera imagen.

Cuando pincho en sacar foto lo que hago es pasar la foto a un IMAGEVIEW con el siguiente codigo:

SACAR FOTO:
Sub BtnFoto_Click
    Camara.TakePicture
    wait for Camara_PictureTaken(Data() As Byte)
    Camara.SavePictureToFile(Data, File.DirDefaultExternal, "fotolocalizacion.jpg")
    Camara.StopPreview
    ImageFoto.SetBackgroundImage(LoadBitmap(File.DirDefaultExternal, "fotolocalizacion.jpg"))
End Sub

Pero en IMAGEFOTO la foto sale girada, como podeis ver en la segunda imagen que adjunto.

Alguien sabe como puedo solucionarlo? Muchas gracias
 

Attachments

  • Preview.jpeg
    Preview.jpeg
    82.9 KB · Views: 163
  • Foto.jpeg
    Foto.jpeg
    59.2 KB · Views: 157

JordiCP

Expert
Licensed User
Longtime User
El problema de fondo con las imágenes JPEG grabadas con la cámara es que algunos dispositivos la graban ya con la rotación correcta, o con la nativa de la cámara (suele ser landscape), y añade unos metadatos EXIF en el JPEG que indican que se debe rotar, normalmente 90 o -90 grados. Parece que este es el caso.
Al recuperar un bitmap en JPEG, no se tienen en cuenta estos datos EXIF, y se ve rotada. Si por ejemplo abres la misma foto con la app de fotos o Galeria de Android, lo más seguro es que lo tenga en cuenta y la muestre correctamente

Para funcionar en tu dispositivo la solución de @oparra funcionará y es la más limpia, pero si quieres que funcione en todos los dispositivos, tienes que implementar lo indicado AQUI
 
Last edited:

TILogistic

Expert
Licensed User
Longtime User
ver este post, es de IOS pero es común este problema, comentan lo que dice @JordiCP

 

Edu Portu

Member
Licensed User
Longtime User
Buenos dias y muchas gracias por vuestras respuestas.

De momento he usado la solución de @oparra , aunque soy consciente de que solo sirve para mi dispositivo me corrige el error y me permite seguir avanzando en el desarrollo, que estaba un poco atascado.

Cuando tenga tiempo miro la solucion para todos los dispositivos.

De nuevo muchas gracias.
 
Top