2013-03-06 56 views
1

我想从网上下载图像将其保存在媒体库中,下面是我的代码,我在这里缺少的东西,在此先感谢从网络下载图像并存储在媒体库(Windows Phone 8)

public void storePicture() 
    { 
     try 
     { 


      using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()) 
      { 

       string url = @"http://mynokiablog.com/wp-content/uploads/2012/11/wp8.jpeg"; 

        BitmapImage storeimage = new BitmapImage(new Uri(url)); 

        // height and width are 0 
        int testheight = storeimage.PixelHeight; 
        int testwidth = storeimage.PixelWidth; 
       IsolatedStorageFileStream fileStream = myIsolatedStorage.CreateFile("testname"); 
        // NullRefrenceException 
       WriteableBitmap wb = new WriteableBitmap(storeimage); 

       wb.SaveJpeg(fileStream, wb.PixelWidth, wb.PixelHeight, 0, 85); 
       fileStream.Close(); 
      } 

     } 
     catch (Exception ex) 
     { 
       System.Diagnostics.Debug.WriteLine(ex.Message); 
     } 

    } 

回答

3

添加事件处理程序如下

storeimage.ImageOpened += bitmapImage_ImageOpened; 
    storeimage.ImageFailed += bitmapImage_ImageFailed; 
    storeimage.DownloadProgress += bitmapImage_DownloadProgress; 

然后在bitmapImage_DownloadProgress,创建WritableBitMap并保存

3
private void LoadIMG() 
    { 

     var bitmapImage = new BitmapImage { CreateOptions = BitmapCreateOptions.None }; 


     bitmapImage.ImageOpened += bitmapImage_ImageOpened; 
     bitmapImage.ImageFailed += bitmapImage_ImageFailed; 
     bitmapImage.DownloadProgress += bitmapImage_DownloadProgress; 
     bitmapImage.UriSource = new Uri("http://ds.serving-sys.com/BurstingRes///Site-16990/Type-0/7b912e70-352a-454f-8ea7-5d5ecd6ebfae.gif"); 
    } 

    private void bitmapImage_DownloadProgress(object sender, DownloadProgressEventArgs e) 
    { 

    } 

    private void bitmapImage_ImageFailed(object sender, ExceptionRoutedEventArgs e) 
    { 

    } 

    private void bitmapImage_ImageOpened(object sender, RoutedEventArgs e) 
    { 
     var userStoreForApplication = IsolatedStorageFile.GetUserStoreForApplication(); 
     var writeableBitmap = new WriteableBitmap(sender as BitmapImage); 
     var isolatedStorageFileStream = userStoreForApplication.CreateFile("Myfile.gif"); 
     writeableBitmap.SaveJpeg(isolatedStorageFileStream, writeableBitmap.PixelWidth, writeableBitmap.PixelHeight, 0, 85); 
    }