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…

Anúncios

Deixe um comentário :)

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s