2011年11月3日 星期四

在App中讀取Windows Phone 7手機內的照片資源(Picture Hub存取)

同樣的,和存取音樂檔案一樣,手機上的照片檔案存取,也採用一樣的方式,我們可以透過Microsoft.Xna.Framework.Media.MediaLibrary取得用戶儲存於手機上的照片,關鍵在Pictures屬性:

//透過MediaLibrary存取手機照片
Microsoft.Xna.Framework.Media.MediaLibrary lib = new Microsoft.Xna.Framework.Media.MediaLibrary();
foreach (var item in lib.Pictures)
{
    //動態建立Image物件
    Image img = new Image();
    //加入容器
    StackPanel1.Children.Add(img);
    img.Width = 400; img.Height = 400;
    //設定圖片來源
    BitmapImage bi = new BitmapImage();
    //關鍵在item.GetImage取得圖片
    bi.SetSource(item.GetImage());
    img.Source = bi;
}

開發人員需要比較留意的部分,是動態建立的Image物件,是透過source屬性來設定圖片,但圖片來源必須是BitmapImage,因此我們又動態建立了BitmapImage物件,並且透過SeetSource來設定該物件的binary圖形資料來源,而這個資料來源,當然是從item取得,使用的是GetImage()方法。

執行的結果如下:



請留意,Microsoft.Xna.Framework.Media.MediaLibrary.Pictures取得的每一個物件,其型別是Microsoft.Xna.Framework.Media.Picture,這個物件除了可以透過GetImage()取得圖片之外,還有幾個重要的屬性,諸如:Name, Width, Height, Date, Album…分別可用來表達圖片的相關資訊。

沒有留言: