Suponemos que tenermos rellenado el dataset_imagen con la información relativa a la imagen.
Dim imagen, miniatura As Image
Dim datosBlob() As Byte
datosBlob = CType(dataset_imagen.Tables(0).Rows(e.Item.ItemIndex)(“campo_blob_que_contiene_la_imagen”), Byte())
Dim imagenmemoria As MemoryStream
imagenmemoria = New MemoryStream(datosBlob)
imagen = Image.FromStream(imagenmemoria)
Dim nuevoAlto As Integer
Dim nuevoAncho As Integer
If imagen.Height > imagen.Width Then
nuevoAlto = 80
nuevoAncho = (imagen.Width * 80) / imagen.Height
Else
nuevoAncho = 80
nuevoAlto = (imagen.Height * 80) / imagen.Width
End If
miniatura = New Bitmap(nuevoAncho, nuevoAlto, imagen.PixelFormat)
Dim grafico As Graphics = Graphics.FromImage(miniatura)
grafico.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
grafico.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
Dim rectangulo As Rectangle
rectangulo = New Rectangle(0, 0, nuevoAncho, nuevoAlto)
grafico.DrawImage(imagen, rectangulo)
miniatura.Save(path_en_disco, Imaging.ImageFormat.Jpeg)
Dim datosBlob() As Byte
datosBlob = CType(dataset_imagen.Tables(0).Rows(e.Item.ItemIndex)(“campo_blob_que_contiene_la_imagen”), Byte())
Dim imagenmemoria As MemoryStream
imagenmemoria = New MemoryStream(datosBlob)
imagen = Image.FromStream(imagenmemoria)
Dim nuevoAlto As Integer
Dim nuevoAncho As Integer
If imagen.Height > imagen.Width Then
nuevoAlto = 80
nuevoAncho = (imagen.Width * 80) / imagen.Height
Else
nuevoAncho = 80
nuevoAlto = (imagen.Height * 80) / imagen.Width
End If
miniatura = New Bitmap(nuevoAncho, nuevoAlto, imagen.PixelFormat)
Dim grafico As Graphics = Graphics.FromImage(miniatura)
grafico.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
grafico.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
Dim rectangulo As Rectangle
rectangulo = New Rectangle(0, 0, nuevoAncho, nuevoAlto)
grafico.DrawImage(imagen, rectangulo)
miniatura.Save(path_en_disco, Imaging.ImageFormat.Jpeg)