2013-02-11 47 views
2

我想從我的應用程序主頁中的圖像控件名爲image1保存圖像到手機的媒體庫這裏是我的代碼,但在WriteableBitmap wr = image1;它給了我一個錯誤。保存圖像到媒體庫在Windows Phone 7

public void SaveImageTo(string fileName = "Gage.jpg") 
{ 
    fileName += ".jpg"; 
    var myStore = IsolatedStorageFile.GetUserStoreForApplication(); 
    if (myStore.FileExists(fileName)) 
    { 
     myStore.DeleteFile(fileName); 
    } 

    IsolatedStorageFileStream myFileStream = myStore.CreateFile(fileName); 
    WriteableBitmap wr = image1; // give the image source 
    wr.SaveJpeg(myFileStream, wr.PixelWidth, wr.PixelHeight, 0, 85); 
    myFileStream.Close(); 

    // Create a new stream from isolated storage, and save the JPEG file to the        media library on Windows Phone. 
    myFileStream = myStore.OpenFile(fileName, FileMode.Open, FileAccess.Read); 
    MediaLibrary library = new MediaLibrary(); 
    //byte[] buffer = ToByteArray(qrImage); 
    library.SavePicture(fileName, myFileStream); } 

回答

0

您正試圖將Control「圖像1」分配給WriteableBitmap對象,這就是爲什麼你有一個錯誤(它們是兩種不同類型的)。

您應根據「image1」的來源設置不同來初始化WriteableBitmap

如果「圖像1」引用了本地圖像,可以初始化相應的WriteableBitmap這樣:

BitmapImage img = new BitmapImage(new Uri(@"images/yourimage.jpg", UriKind.Relative)); 
img.CreateOptions = BitmapCreateOptions.None; 
img.ImageOpened += (s, e) => 
{ 
    WriteableBitmap wr = new WriteableBitmap((BitmapImage)s); 
}; 

如果你想渲染圖像控制到一個WriteableBitmap的,你可以這樣做:

WriteableBitmap wr = new WriteableBitmap(image1, null); 
+0

它工作的很棒! – user2015167 2013-02-12 15:35:26

相關問題