ATENCIÓN AL CLIENTE: +34 923 199 148

Almacenar una imagen en disco procedente de una base de datos

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)
Quizá te interese...
Rutina para rellenar un dataset con una consulta SQL procedente de una base de datos MySQL con ADO.NET. Se incluye una caja de texto que permite filtrar información de los datos del datagridview, en función al contenido de dicha caja (Versión 2)