Ciao, utilizzo la seguente funzione per ridimensionare le immagini.
Funziona correttamente, ma, a causa della riga evidenziata, i dati exif non vengono riportati nell'immagine ridimensionata.
C'è un modo per ridimensionare un'immagine senza perdere i dati exif?
codice:
Public Function ResizeImage(ByVal percorsoImmagine As String, ByVal destinazioneImmagine As String) As Boolean
Dim bm As Bitmap
'dimensioni originali
Dim originalX As Integer
Dim originalY As Integer
'dimensioni finali
Dim destinationX As Integer
Dim destinationY As Integer
'carica immagine originale
bm = New Bitmap(percorsoImmagine)
'ricava dimensioni originali dell'immagine
originalX = bm.Width
originalY = bm.Height
'imposta dimensioni finali
destinationX = 1600
destinationY = 1600
If originalX > originalY Then
If originalX > 1600 Then
destinationX = 1600
destinationY = CInt((destinationX / originalX) * originalY)
Else
destinationX = originalX
destinationY = originalY
End If
ElseIf originalY > originalX Then
If originalY > 1600 Then
destinationX = CInt((destinationY / originalY) * originalX)
destinationY = 1600
Else
destinationX = originalX
destinationY = originalY
End If
ElseIf originalX = originalY Then
If originalY > 1600 Then
destinationX = 1600
destinationY = 1600
Else
destinationX = originalX
destinationY = originalY
End If
End If
'riduzione dell'immagine
Dim thumb As New Bitmap(destinationX, destinationY)
Dim g As Graphics = Graphics.FromImage(thumb)
g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
g.DrawImage(bm, New Rectangle(0, 0, destinationX, destinationY), New Rectangle(0, 0, bm.Width, bm.Height), GraphicsUnit.Pixel)
g.Dispose()
thumb.Save(destinazioneImmagine, System.Drawing.Imaging.ImageFormat.Jpeg)
bm.Dispose()
thumb.Dispose()
Return True
End Function