Base64

WPF: Converter imagens para strings (Base64) – VB.NET

Certas vezes precisamos armazenar uma imagem de forma diferenciada. Quer um exemplo?

Digamos que você precise salvar uma imagem dentro de um arquivo XML, ou até mesmo HTML. Isso é factível?

Com certeza! Basta convertermos a imagem para Base64. Eis o código que fará isso para nós:

Public NotInheritable Class Base64
    'Converte uma string Base64 de volta para uma imagem
    Public Shared Function Base64StringToImage(ByVal str As String) As BitmapSource
        Dim o As New IO.MemoryStream(Convert.FromBase64String(str))
        Dim img As New BitmapImage()
        img.BeginInit()
        img.StreamSource = o
        img.CacheOption = BitmapCacheOption.OnLoad
        img.EndInit()
        Return img
    End Function

    'Converte uma imagem para uma string Base64
    Public Shared Function ImageToBase64String(ByVal img As BitmapSource) As String
        Dim o As New IO.MemoryStream
        Dim png As New PngBitmapEncoder
        png.Frames.Add(Windows.Media.Imaging.BitmapFrame.Create(img))
        png.Save(o)
        Dim str As String
        str = Convert.ToBase64String(o.GetBuffer)
        Return str
    End Function
End Class

Extremamente simples e muito útil!

Com pequenos ajustes irá funcionar para Windows Forms também…