Aprender a programar > Aprender a programar desde cero

convertir imagen a array bytes MemoryStream recuperar imagen PictureBox vb.net

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa