[Desenvolvimento] Como fazer o download de imagens da Internet e armazena-las localmente no sistema de arquivos da APP
Olá, tudo bom?
Caso você esteja precisando fazer o download de imagens da Internet e armazena-las localmente no sistema de arquivos de sua APP, veja abaixo uma sequencia de código que poderá lhe ajudar.
1) Código XAML para montar a interface do nosso exemplo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| ...
<!--TitlePanel contains the name of the application and page title-->
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock Text="BLOG DO EDUARDO H. RIZO" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
<TextBlock Text="download image" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
<!--ContentPanel - place additional content here-->
<StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<TextBlock Name="txbURL" Text="URL da imagem:" />
<TextBox Name="txtURL" Text="http://ehrizo.files.wordpress.com/2013/06/logo-fipp.jpg" />
<Button Name="btnObter" Content="Obter imagem e gravar localmente" Click="btnObter_Click" />
<Image Name="imgInternet" Visibility="Collapsed" />
</StackPanel>
...
|
2) Código C# utilizado para manipular o clique do botão, download e armazenamento local da imagem
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| private void btnObter_Click(object sender, RoutedEventArgs e)
{
//No clique do botão criamos um objeto da classe WebClient e então fazemos a leitura assincrona da imagem através de sua URL
WebClient wc = new WebClient();
wc.OpenReadCompleted += wc_OpenReadCompleted; //Esse método será chamado após o término do download da imagem
wc.OpenReadAsync(new Uri(txtURL.Text, UriKind.Absolute));
}
void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
//O resultado do download chega através do argumento "e" recepcionado por esse método
byte[] imageBytes = new byte[e.Result.Length];
e.Result.Read(imageBytes, 0, imageBytes.Length);
//O objeto "image" recebe passa a representar para o C# a imagem que fizemos download
var image = new BitmapImage();
image.SetSource(e.Result);
//Configurando a imagem para aparecer no APP
imgInternet.Source = image;
imgInternet.Visibility = Visibility.Visible;
//Gravando a imagem no IsolatedStorageFile de nossa aplicação
string nomeArquivo = "livetile.jpg"; //O nome do arquivo está fixo, mas caso precise, basta achar um modo de nomear cada um deles
using (IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication())
{
if (iso.FileExists(nomeArquivo))
iso.DeleteFile(nomeArquivo);
IsolatedStorageFileStream fs = iso.CreateFile(nomeArquivo);
WriteableBitmap wb = new WriteableBitmap(image);
Extensions.SaveJpeg(wb, fs, wb.PixelWidth, wb.PixelHeight, 0, 90);
fs.Close();
}
}
|
Para comprovar que a imagem foi armazena no sistema de arquivos de sua APP, sugiro que utilize as dicas contidas no post Curso Windows Phone: Visualizar, copiar e transferir arquivos do Isolated Storage do emulador do Windows Phone para o computador do desenvolvedor e vice-versa.
Fica a dica!
[Desenvolvimento] Como fazer o download de imagens da Internet e armazena-las localmente no sistema de arquivos da APP
Reviewed by Klede Marcos Teixeira
on
06:19
Rating:
Nenhum comentário: