Convertir byte a imagen

08/02/2007 - 16:44 por aydai | Informe spam
Hola a todos!!!!
Vereis, tengo un campo de una base de datos SQL en el que necesito guardar
una imagen, para hacerlo tengo que pasar la imagen a byte, lo hago con una
funcion ImageToByte, el problema que tengo ahora es que para volver a
visualizar esta imagen, en un picturebox no se como hacerlo, alguna ayuda??
 

Leer las respuestas

#1 Luis Miguel Blanco
08/02/2007 - 19:01 | Informe spam
Hola aydai

Puedes probar a utilizar un datareader sobre el que ejecutarás la sentencia
sql que te devuelva la fila de la tabla que contiene la imagen que necesitas.
A continuación, pasas el campo que contiene la imagen a una variable
declarada como array de bytes. Seguidamente creas un flujo -stream- de datos
en memoria que contenga dicho array de bytes, y después, utilizando dicho
flujo de datos, instancias un objeto Bitmap. Finalmente asignas el bitmap al
control PictureBox. Te adjunto un bloque de código de ejemplo con lo que te
acabo de comentar.

'///////////////////////////////
Dim sSQL As String
Dim cnConexion As SqlConnection
Dim cmdComando As SqlCommand
Dim drFotos As SqlDataReader

Dim aBytImagen() As Byte
Dim oFileStream As FileStream
Dim oMemoryStream As MemoryStream
Dim bmpImagen As Bitmap

' crear sentencia, conexión y comando para obtener la imagen de la base de
datos
sSQL = "SELECT Nombre, Foto FROM Fotos WHERE IDFoto = 150"
cnConexion = New SqlConnection("data source=localhost;initial
catalog=ColeccionFotos;uid=sa;pwd='';")
cmdComando = New SqlCommand
cmdComando.Connection = cnConexion
cmdComando.CommandType = CommandType.Text
cmdComando.CommandText = sSQL
cnConexion.Open()
drFotos = cmdComando.ExecuteReader(CommandBehavior.SingleRow)

If drFotos.Read() Then
' recuperar datos binarios de la foto
aBytImagen = drFotos("Foto")
End If

drFotos.Close()
cnConexion.Close()

' crear un objeto stream en memoria conteniendo los datos de la imagen,
' crear un bitmap con el stream y
' visualizar la imagen en un control PictureBox
oMemoryStream = New MemoryStream(aBytImagen)
bmpImagen = New Bitmap(oMemoryStream)
Me.picFoto.Image = bmpImagen
'///////////////////////////////

Espero que te sea de ayuda.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"" wrote:

Hola a todos!!!!
Vereis, tengo un campo de una base de datos SQL en el que necesito guardar
una imagen, para hacerlo tengo que pasar la imagen a byte, lo hago con una
funcion ImageToByte, el problema que tengo ahora es que para volver a
visualizar esta imagen, en un picturebox no se como hacerlo, alguna ayuda??



Preguntas similares