Aprender a programar > Aprender a programar desde cero
convertir imagen a array bytes MemoryStream recuperar imagen PictureBox vb.net
victor14:
buenas tardes amigos desarrolladores, soy nuevo en estoy y tengo una duda, en un proyecto guardo información de alumnos y entre esa info. esta su foto, entonces la guardo en mysql convirtiéndolo a bytes con esta función:
--- Código: ---Private Function Imagen_Bytes(ByVal Imagen As Image) As Byte()
'si hay imagen
If Not Imagen Is Nothing Then
'variable de datos binarios en stream(flujo)
Dim Bin As New MemoryStream
'convertir a bytes
Imagen.Save(Bin, Imaging.ImageFormat.Jpeg)
'retorna binario
Return Bin.GetBuffer
Else
Return Nothing
End If
End Function
--- Fin del código ---
y me la guarda muy bn ya que inserte un datagriedview y me lo muestra , pero al querer hacer la consulta y que me mande los campos a los textbox y al picture, la imagen no me la muestra, no se si me pudieran ayudar, la funcion que tengo para convertir bytes a imagen es :
--- Código: ---Private Function Bytes_Imagen(ByVal Imagen As Byte()) As Image
Try
'si hay imagen
If Not Imagen Is Nothing Then
'caturar array con memorystream hacia Bin
Dim Bin As New MemoryStream(Imagen)
'con el método FroStream de Image obtenemos imagen
Dim Resultado As Image = Image.FromStream(Bin)
'y la retornamos
Return Resultado
Else
Return Nothing
End If
Catch ex As Exception
Return Nothing
End Try
End Function
--- Fin del código ---
pero no se como mandarla a llamar para poder devolver la imagen al picture box, de ante mano gracias por tomarse la molestia de leer este problema......
Alex Rodríguez:
Hola Víctor, en primer lugar darte la bienvenida a los foros. También señalarte que para pegar código tenemos unas instrucciones indicadas en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 donde se explica cómo hacerlo para que sea visualizable correctamente.
Respecto al código, he probado este código y me ha funcionado bien (para probarlo, crear un proyecto de Visual Basic con un picture box y escribir las rutas de imágenes correctas para nuestro pc):
--- Código: ---Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.IO
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
MsgBox("eo")
PictureBox1.Image = Image.FromFile("C:\Users\Micarpeta\imagen1.jpg")
Dim miImagenBytes() As Byte = Imagen_Bytes(Image.FromFile("C:\Users\Micarpeta\imagen2"))
PictureBox1.Image = Bytes_Imagen(miImagenBytes)
End Sub
Private Function Imagen_Bytes(ByVal Imagen As Image) As Byte()
'si hay imagen
If Not Imagen Is Nothing Then
'variable de datos binarios en stream(flujo)
Dim Bin As New MemoryStream
'convertir a bytes
Imagen.Save(Bin, Imaging.ImageFormat.Jpeg)
Bin.Dispose()
'retorna binario
Return Bin.GetBuffer
Else
Return Nothing
End If
End Function
Private Function Bytes_Imagen(ByVal Imagen As Byte()) As Image
Try
'si hay imagen
If Not Imagen Is Nothing Then
'caturar array con memorystream hacia Bin
Dim Bin As New MemoryStream(Imagen)
'con el método FroStream de Image obtenemos imagen
Dim Resultado As Image = Image.FromStream(Bin)
Bin.Dispose()
'y la retornamos
Return Resultado
Else
Return Nothing
End If
Catch ex As Exception
Return Nothing
End Try
End Function
End Class
--- Fin del código ---
Saludos
victor14:
Buenas noches alex, gracias por esa informacion, disculpa ya hice eso pero ahora mi pregunta es que a la hr de hacer la consulta como la jalo de la base de datos hacia el picture , osea como le asigno el campo de la bd al picturebox???
por que para los textbox hago algo asi:
--- Código: --- txtclavealu.Text = registro.Tables("alumnos").Rows(0).Item("id_alu")
--- Fin del código ---
pero para e picture no se como mandarlo llamar, espero me puedas ayudar , muchas gracias de antemano alex...
victor14:
gracias por tu consejo , pero pude resolver este problema que tenia de manera mas facil , guardando ruta de la imagen y mandandola traer al picturebox con un load, gracias de todos modos por tu comentario
Alex Rodríguez:
Bueno gracias a tí por indicar cómo lo resolviste, le puede servir de ayuda a otras personas
Saludos
Navegación
[#] Página Siguiente
Ir a la versión completa