Visual Basic Foro

Programación => Visual Basic .NET / C# => Mensaje iniciado por: javierjava en Octubre 14, 2012, 12:48:16 am

Título: Convertí r imagen en string y viceversa
Publicado por: javierjava en Octubre 14, 2012, 12:48:16 am
Que tal alguien me podría ayudar en cómo convertir una imagen en string tengo esta funciones que si lo hace pero es muy lento y no me funciona bien
Código: [Seleccionar]
Imports System.IO
Imports System.Text
Imports System.Drawing
Module mBitmapConverter
    Public Function BitmapToString(ByVal sImagePath As String) As String
        Try
            Dim data As String
            Dim ms As MemoryStream = New MemoryStream
            Dim bmp As Bitmap = New Bitmap(sImagePath)
            bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
            data = Convert.ToBase64String(ms.ToArray())
            Return data
        Catch ex As Exception
            Return String.Empty
        End Try
    End Function
    Public Function BitmapToString(ByVal bImage As Bitmap) As String
        Try
            Dim data As String
            Dim ms As MemoryStream = New MemoryStream
            bImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
            data = Convert.ToBase64String(ms.ToArray())
            Return data
        Catch ex As Exception
            Return String.Empty
        End Try
    End Function
    Public Function StringToBitmap(ByVal sImageData As String) As Bitmap
        Try
            Dim ms As New MemoryStream(Convert.FromBase64String(sImageData))
            Dim bmp As Bitmap = Bitmap.FromStream(ms)
            Return bmp
        Catch ex As Exception
            Return Nothing
        End Try
    End Function
End Module

Alguien tendría una forma de hacerlo mucho mejor y que no sea tan lenta como el de esta función.
Disculpen las molestias y gracias por cualquier ayuda que me puedan brindar
Título: Re:Convertí r imagen en string y viceversa
Publicado por: E N T E R en Octubre 18, 2012, 04:19:32 pm
Encontré este creo que podes adaptar a tu proyecto, funciona muy bien ojala te sirva amigo.

Código: (VB) [Seleccionar]
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        'Convertir
        Dim b As Byte() = IO.File.ReadAllBytes("c:\x\original.jpg")
        Dim str As String = Convert.ToBase64String(b)

        'Leer
        Dim z As Byte() = Convert.FromBase64String(str)
        Dim scribe As New IO.FileStream("c:\x\original_convertido.jpg", IO.FileMode.Create, IO.FileAccess.ReadWrite)
        scribe.Write(z, 0, z.Length)
        scribe.Close()

    End Sub

Aca hay mas datos creo que modificaron unos cuantos pero el que te pase creo que ya sirve por que ellos estan tratando de otro tema.
Fuente: http://social.msdn.microsoft.com/Forums/es/vbes/thread/fa1f4ceb-2fbf-43fa-8700-7720cadc9678 (http://social.msdn.microsoft.com/Forums/es/vbes/thread/fa1f4ceb-2fbf-43fa-8700-7720cadc9678)

Saludos...