Como converter um byte array para uma imagem em Windows Store app

Estamos desenvolvendo uma App usando C# Windows Store utilizando MVVM pattern. No cenário atual, o projeto possui uma ViewModel contendo um byte array que representa uma imagem.

 public class Main : INotifyPropertyChanged
 {
    public event PropertyChangedEventHandler PropertyChanged;
    private byte[] _imagemBuffer;
    public byte[] ImageBuffer
    {
     get { return _imagemBuffer;}
     set{
         _imagemBuffer= value;
         var carregaImagem = LoadImagemAsync();
        }
     }
 private ImagemSource _imagemSource;
 public ImagemSource ImagemSource
{
    get { return _imagemSource;}
    set{
        imagemSource = value;
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs("ImageSource"))
       }
 }
 private async Task LoadImagemAsync()
 {
   using (InMemoryRandomAccessStream memoryRandonAcessStream = new InMemoryRandomAccessStream())
   {
     using (DataWriter writer = new DataWriter(memoryRandonAcessStream.GetOutputStreamAt(0)))
     {
       writer.WriteBytes(imageBuffer);
       await writer.StoreAsync();
     }

     var imagem = new BitmapImage();
     await imagem.SetSourceAsync(memoryRandonAcessStream);
     ImageSource = imagem;
   }
 }

}

No set da propriedade ImagemBuffer, o método CarregaImagemAsync é chamado, onde transfere o array de byte para uma “InMemoryRandomAccessStream” e usa para inserir o código dentro do BitmapImage.
Para concluir basta realizar o Bind da propriedade ImageSource para uma propriedade da ImageControl.


<Image Source="{Binding ImageSource}"/>

Deixe uma resposta

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