5

A causa della mia mancanza di esperienza di programmazione (3 mesi) non sono stato in grado di ricreare alcun esempio trovato della domanda precedente. Gli esempi che ho trovato riguardano il WP7 Silverlight, il salvataggio di immagini basato su telecamere, sono stati complessi per le mie esigenze o semplicemente non hanno funzionato. Sono stato in grado di scaricare un file di testo utilizzando un'istanza del Webclient e salvarlo in una memoria isolata utilizzando StreamWriter. Devo svolgere lo stesso compito con le immagini jpg. Di seguito è quello che ho usato per scaricare il file di testo.Come scaricare le immagini (jpg) tramite un client Web e salvarle su un dispositivo di archiviazione isolato su Windows Phone 7?

========================================= =================================

IsolatedStorageFile MyStore = IsolatedStorageFile.GetUserStoreForApplication(); 


    private void GetTextFile() 
     { 
      WebClient client = new WebClient(); 
      client.DownloadStringCompleted += new  DownloadStringCompletedEventHandler(client_DownloadStringCompleted); 
      client.DownloadStringAsync(new Uri("http://mywebsite.com/textfile.txt")); 
     } 

    private void client_DownloadStringCompleted(object sender,  DownloadStringCompletedEventArgs e) 
     { 
      StreamWriter MyStreamWriter = new StreamWriter(new  IsolatedStorageFileStream("textfile.txt", FileMode.Create, MyStore)); 
      MyStreamWriter.WriteLine(e.result) 
      MyStreamWriter.Close(); 
    } 

========== ================================================== ===================

Ho rimosso alcune righe utilizzate per gestire gli errori ecc. Per mantenerlo il più semplice possibile.

Si prega di qualcuno potrebbe modificare quanto sopra per permettermi di scaricare e salvare un jpg?

Si prega di tenerlo il più semplice possibile in quanto sono facilmente confuso.

Grazie per il vostro tempo in anticipo!

RISOLTO! ======================================= =====================

Sono riuscito a farlo funzionare utilizzando le informazioni da questo sito sotto. http://dotnet.dzone.com/articles/operating-image-files-windows

Speriamo che questo possa aiutare altri neofiti frustrati in futuro!

IsolatedStorageFile MyStore = IsolatedStorageFile.GetUserStoreForApplication(); 

private void GetImageFile() 
{ 
     WebClient client = new WebClient(); 
     client.OpenReadCompleted += new  OpenReadCompletedEventHandler(client_OpenReadCompleted); 
     client.OpenReadAsync(new Uri("http://mywebsite.com/1.jpg"), client); 
    } 


void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) 
{ 
    var resInfo = new StreamResourceInfo(e.Result, null); 
var reader = new StreamReader(resInfo.Stream); 
byte[] contents; 
    using (BinaryReader bReader = new BinaryReader(reader.BaseStream)) 
    { 
    contents = bReader.ReadBytes((int)reader.BaseStream.Length); 
    } 
    IsolatedStorageFileStream stream = MyStore.CreateFile("10.jpg"); 
stream.Write(contents, 0, contents.Length); 
stream.Close(); 
} 

risposta

4

Prova questo, forse utile a te,

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) 
{ 
    HttpWebRequest reqest1 = (HttpWebRequest)WebRequest.Create(url); 
    reqest1.BeginGetResponse(DownloadImageCallback, reqest1); 
    Thread.Sleep(1000); 
} 

void DownloadImageCallback(IAsyncResult result) 
{ 

    HttpWebRequest req1 = (HttpWebRequest)result.AsyncState; 
    HttpWebResponse responce = (HttpWebResponse)req1.EndGetResponse(result); 
    Stream s = responce.GetResponseStream(); 
    Deployment.Current.Dispatcher.BeginInvoke(() => 
    { 
     string directory = "Images"; 
     if (!myStore.DirectoryExists(directory)) 
     { 
      myStore.CreateDirectory(directory); 
      using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()) 
      { 
       using (var isoFileStream = myIsolatedStorage.CreateFile(directory + "//yourfilename.jpg")) 
       { 
        var wb = new WriteableBitmap(bitimage); 
        var width = wb.PixelWidth; 
        var height = wb.PixelHeight; 
        Extensions.SaveJpeg(wb, isoFileStream, width, height, 0, 100); 
       } 
      } 
     } 
     else 
     { 
      using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()) 
      { 
       if (myIsolatedStorage.FileExists(directory + "//yourfilename.jpg")) 
       { 
        myIsolatedStorage.DeleteFile(directory + "//yourfilename.jpg"); 
       } 

       using (var isoFileStream = myIsolatedStorage.CreateFile(directory + "//yourfilename.jpg")) 
       { 
        var wb = new WriteableBitmap(bitimage); 
        var width = wb.PixelWidth; 
        var height = wb.PixelHeight; 
        Extensions.SaveJpeg(wb, isoFileStream, width, height, 0, 100); 
       } 
      } 
     } 
    }); 
} 
Problemi correlati