0

Я пытаюсь получить изображение из URL-адреса и сохранить его в изолированном хранилище, а затем получить его из изолированного хранилища и отобразить его в моем приложении WP-7.Ошибка при сохранении и извлечении изображения из изолированного хранилища

Вот relavant код:

public void GetImages() 
{ 
    string uri = "http://sherutnetphpapi.cloudapp.net/mini_logos/" + path; 
    WebClient m_webClient = new WebClient(); 
    imageUri = new Uri(uri); 

    m_webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_ImageOpenReadCompleted); 
    m_webClient.OpenReadAsync(imageUri); 
} 

void webClient_ImageOpenReadCompleted(object sender, OpenReadCompletedEventArgs e) 
{ 

    Stream stream = e.Result; 
    using (IsolatedStorageFile myIsf = IsolatedStorageFile.GetUserStoreForApplication()) 
    { 
     IsolatedStorageFileStream fileStream = myIsf.CreateFile(path); 
     StreamResourceInfo sri = null; 
     sri = Application.GetResourceStream(imageUri); 

     BitmapImage bitmap = new BitmapImage(); 
     bitmap.SetSource(sri.Stream); 
     WriteableBitmap wb = new WriteableBitmap(bitmap); 

     // Encode WriteableBitmap object to a JPEG stream. 

     System.Windows.Media.Imaging.Extensions.SaveJpeg(wb, fileStream, wb.PixelWidth, wb.PixelHeight, 0, 85); 
     fileStream.Close(); 
    } 
} 

Проблема заключается в этой строке: sri = Application.GetResourceStream(imageUri); я получаю исключение на этом методе GetResourceStream()Ожидаемое относительное Uri, нашел абсолютное.

Я не понимаю, как это сделать вместо imageUri.

Спасибо заранее!

+0

Я действительно не знаю, что это такое Я новичок на этом сайте. Я буду рад, если вы сможете объяснить мне об этом курсе – thechmodmaster

+0

O.k, я думаю, я его получил ..... спасибо – thechmodmaster

+1

Когда люди предоставили полезные ответы, они получают голосов. Когда ответы не помогают, они получают голоса. Какой бы ответ вы ни считали самым полезным или самым точным, вам нужно принять его как «правильный ответ». –

ответ

2

Я думаю, что это может быть то, что вам нужно.

public void GetImages() 
{ 
    string uri = "http://sherutnetphpapi.cloudapp.net/mini_logos/" + path;  
    WebClient m_webClient = new WebClient(); 
    imageUri = new Uri(uri); 
    m_webClient.OpenReadAsync(imageUri); 
    m_webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_ImageOpenReadCompleted); 
    m_webClient.AllowReadStreamBuffering = true; 

} 


void webClient_ImageOpenReadCompleted(object sender, OpenReadCompletedEventArgs e) 
{   
    var isolatedfile = IsolatedStorageFile.GetUserStoreForApplication(); 
    using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream(path, System.IO.FileMode.Create, isolatedfile)) 
    { 
     byte[] buffer = new byte[e.Result.Length]; 
     while (e.Result.Read(buffer, 0, buffer.Length) > 0) 
     { 
      stream.Write(buffer, 0, buffer.Length); 
     } 
    } 
} 
+0

Я пробовал, но я получаю сообщение об ошибке: «can not convert from string to system.uri» – thechmodmaster

+0

Да, но я не знаю, какой путь к файлу дать – thechmodmaster

+0

Я думаю, что узнал, что случилось. Попробуй это сейчас. –

0

Что это path содержит, потому что, если он содержит относительный URL, а затем удалить / из пути. Поскольку у вас уже есть / в конце uri.

+0

путь содержит имя company.png, например : cnn.png – thechmodmaster

Смежные вопросы