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??

Preguntas similare

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??



Respuesta Responder a este mensaje
#2 aydai
09/02/2007 - 13:08 | Informe spam
Muchisimas gracias Luis Miguel, todo me ha funcionado perfectamente.

"Luis Miguel Blanco" escribió
en el mensaje news:
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??



Respuesta Responder a este mensaje
#3 Carlos Aparicio
12/02/2007 - 13:14 | Informe spam
Buenos dias Aydai, disculpa la molestia pero seria posible que me ayudaras!,
tengo una imagen en un picture box y necesito ingresarla en una base de datos
SQL server.

podrias ayudarme con el codigo, por lo que leo ya tu lo tienes hecho.

si puedes por favor enviame el codigo o el recurso por correo, mi correo es


Gracias de antemano

"" 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??



Respuesta Responder a este mensaje
#4 aydai
13/02/2007 - 10:50 | Informe spam
DS_PCO es un dataset ( Yo hago las modificaciones a traves de ellos)

Ds_pco.Tables(TablaPco).Rows(0).Item("pco7_imagen") =
ImageToByte(Image.FromFile(Ruta del fichero))





Public Function ImageToByte(ByVal pImagen As Image) As Byte()

Dim mImage() As Byte

Try

If Not IsNothing(pImagen) Then

Dim ms As New System.IO.MemoryStream

pImagen.Save(ms, pImagen.RawFormat)

mImage = ms.GetBuffer

ms.Close()

Return mImage

End If

Catch

End Try

End Function

"Carlos Aparicio" escribió en el
mensaje news:
Buenos dias Aydai, disculpa la molestia pero seria posible que me
ayudaras!,
tengo una imagen en un picture box y necesito ingresarla en una base de
datos
SQL server.

podrias ayudarme con el codigo, por lo que leo ya tu lo tienes hecho.

si puedes por favor enviame el codigo o el recurso por correo, mi correo
es


Gracias de antemano

"" 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??



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida