Curso Windows Phone – Como salvar um arquivo de imagem no sistema de arquivos da APP

Olá pessoal, tudo bom?

A transição entre o Windows Phone 7, 7.5, 8, 8.1 e agora o Windows Phone 10 (também se encaixam aqui as Universal APPs) trouxe mudanças no modo como codificamos alguns recursos para as APPs, sendo um deles, o método para armazenamento de arquivos no StorageFolder (IsolatedStorageFile) da própria aplicação.

Dada essa situação e também para responder a dúvida de um leitor, resolvi escrever esse post que tem por objetivo demonstrar como armazenar um arquivo de imagem no StorageFolder da APP.

PS: O procedimento para armazenar outros tipos de arquivos seria similar a esse

A codificação abaixo parte do pressuposto que você já possui um arquivo de imagem instanciado em um objeto da classe WriteableBitmap e que o mesmo é passado por parâmetro para nosso método que irá persisti-lo no sistema de arquivos da APP. Vejamos:


async private void SaveImage(WriteableBitmap wb)
{
  try
    {
      //Mapeando o sistema de arquivos local da APP
      StorageFolder folder = ApplicationData.Current.LocalFolder;
      //Definindo o diretório dentro sistema de arquivos local que receberá as imagens
      StorageFolder imgFolder = await folder.CreateFolderAsync("Images", CreationCollisionOption.OpenIfExists);
      //Definindo o objeto do arquivo a ser persistido
      StorageFile file = await imgFolder.CreateFileAsync("file_name", CreationCollisionOption.ReplaceExisting);

      //Definindo o tipo do arquivo de imagem
      Guid BitmapEnconderGuid = BitmapEncoder.JpegEncoderId;
      //Gravando o arquivo
      using (IRandomAccessStream stream = await file.OpenAsync(FileAccessMode.ReadWrite))
      {
        BitmapEncoder encoder = await BitmapEncoder.CreateAsync(BitmapEnconderGuid, stream);

        Stream pixelStream = wb.PixelBuffer.AsStream();
        byte[] pixels = new byte[pixelStream.Length];
        await pixelStream.ReadAsync(pixels, 0, pixels.Length);

        encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Ignore,
             (uint)wb.PixelWidth,
             (uint)wb.PixelHeight,
             96.0,
             96.0,
             pixels);
        await encoder.FlushAsync();
      }

      var dialog = new MessageDialog("Image stored successfully.", "Information");
      await dialog.ShowAsync();
    }
    catch (Exception)
    {
      throw new FileNotFoundException();
    }
}

Abraços,

Eduardo Henrique Rizo

MCP

Post Relacionado: 

Anúncios

Coordenador de Internet da Universidade do Oeste Paulista (Unoeste) e professor universitário de disciplinas relacionadas ao desenvolvimento de sistemas para Web, gerenciamento de servidores, serviços e redes.

Marcado com: , , , , , , , , , , , , , , , , ,
Publicado em Universal APPs, Windows Phone
Um comentário em “Curso Windows Phone – Como salvar um arquivo de imagem no sistema de arquivos da APP
  1. […] Como salvar um arquivo de imagem no sistema de arquivos da APP […]

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

Sorocaba e Região
Prestadora de serviços RIZZO GS - Sorocaba/SP

Serviços de limpeza, conservação, recepção, copa, portaria, vigia, zeladoria, jardim, elétrica, hidráulica, pintura, etc.

Contato: (15) 3357-4263 / (15) 3357-4502 - contato@rizzogs.com.br

Website: http://www.rizzogs.com.br

%d blogueiros gostam disto: