Visual Basic.NET - Incluir fotos en un picture box

 
Vista:
sin imagen de perfil
Val: 24
Ha aumentado su posición en 5 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Incluir fotos en un picture box

Publicado por Arturo (98 intervenciones) el 18/06/2018 11:23:36
Lo que necesito es que las fotos retrato (portrait) se vean normales y no apaisadas como aparecen siempre.

Cuando las veo con el programa Foto de Windows 10 aparecen correctamente, las apaisadas apaisadas y las retrato "verticales".

Tengo fotos del 6000x 4000 pixeles y otras de 4000x6000. Estas ultimas las presenta como si fuesen de 6000x4000.

Un saludo.


P.D. Me estoy volviendo loco haciendo cálculos. Me gustaría en el peor de los casos rotarla.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Incluir fotos en un picture box

Publicado por Juan (10 intervenciones) el 28/06/2018 15:43:02
Prueba cambiando la siguiente propiedad

PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage 'Prueba cambiando esto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 24
Ha aumentado su posición en 5 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Incluir fotos en un picture box

Publicado por Arturo (98 intervenciones) el 28/06/2018 16:17:45
Gracias por la ayuda.

No he encontrado nada para hacerlo en Visual Studio (Basic), pero buceando por internet, y no se como llegué a el, encontré la solución a través de una publicación de un "genio de Microsoft". Es una dll (EXIFextractor.dll) que permite acceder a los datos complementarios (EXIF) de la foto tales como la orientación, diafragma, correcion de blancos ……. etc.

Simplemente se la he añadido como referencia y he añadido en el módulo

Imports Goheer.EXIF

y para obtener la orientacion
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Dim sp As String = String.Empty                        ' No he investigado para que sirve
 
Dim orientacion As Integer = 1                           ' Por defecto la pongo como Landscape
 
Dim imagen As Bitmap
 
Dim exif As EXIFextractor
 
imagen = Image.FromFile(dirfot & dgvFotos.Rows(fila).Cells(0).Value)
 
exif = New EXIFextractor(imagen, sp)
 
pboFoto.Image = imagen
 
If Not IsNothing(exif("Orientation")) Then
    If Not (Integer.TryParse(exif("Orientation").ToString(), orientacion)) Then
        Return
    End If
 
    Select Case orientacion
        Case 1, 6                            'Orientación Landscape (Ojo depende de la cámara)
 
        Case Else                           ' Orientación Portrait
            pboFoto.Image.RotateFlip(RotateFlipType.Rotate270FlipNone)    ' Roto la foto 270º en sentido del reloj
 
        Application.DoEvents()
 
    End Select
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar