[Silverlight] 當麻許的Phone7筆記 - 13.照相以及相簿選圖(CameraCaptureTask&PhotoChooserTask)

2011/01/13

上一篇寫了有關於 電話號碼選擇器(PhoneNumberChooserTask) 可以讓user 選擇電話簿中的電話…
今天來寫一下有關於選擇圖片的方法
過去我曾經寫過 [Windows Phone7] CameraCaptureTask 拍照取得照片 在2010/08 的時候
那時候的SDK 跟現在有落差,那時候必須要把 CameraCaptureTask 移到Event 外面來宣告才可以正常取回圖片…
當時覺得很奇怪,現在終於在新的SDK已經修正…
所以這一篇也是為了要去修正那時候寫得文章並且補述有關於 PhotoChooserTask

CameraCaptureTask - 啟動照相機並且讓使用者選擇一張照片
PhotoChooserTask - 允許從相簿中選擇一張照片

介紹一下畫面配置:

blog-276


按下”啟動拍照”(btnGetCameraImage) 就會打開相機並且讓user拍玩照片之後放入 Image 物件(imgResult)
按下”挑選相簿”(btnGetAlbumImage) 就會開啟手機相簿讓user選擇一張照片之後放入 Image 物件(imgResult)

記得一樣要先

using Microsoft.Phone.Tasks; 

啟動拍照 C# Code :

private void btnGetCameraImage_Click(object sender, RoutedEventArgs e)
{
    CameraCaptureTask cct = new CameraCaptureTask();
    //完成後的事件
    cct.Completed += cct_Completed;
    cct.Show();
}

void cct_Completed(object sender, PhotoResult e)
{
    BitmapImage bmp = new BitmapImage();
    //取得拍攝的照片
    bmp.SetSource(e.ChosenPhoto);
    this.imgResult.Source = bmp;
}


結果:
blog-269 blog-277


挑選相簿的C# Code :

private void btnGetAlbumImage_Click(object sender, RoutedEventArgs e)
{
    PhotoChooserTask pct = new PhotoChooserTask();
    pct.Completed += pct_Completed;

    //如果希望使用者可以直接使用相機把ShowCamera 設為true
    pct.ShowCamera = true;
    pct.Show();

}

void pct_Completed(object sender, PhotoResult e)
{
    BitmapImage bmp = new BitmapImage();
    bmp.SetSource(e.ChosenPhoto);
    this.imgResult.Source = bmp;
}

其中有一行  pct.ShowCamera = true; 如果把 ShowCamera  這屬性設成true
結果就會如下面紅框出現可以切換成像拍照..
換句話說根本用PhotoChooserTask  加上這屬性設成true就無敵啦..(摔筆
blog-275

如果沒有特別去設定ShowCamera 則拍照那顆按鍵就不會出現…
blog-274


選取照片後:
blog-272




大致上這樣,比以前溫馨直覺得多…
在這邊用這篇文章修正以前的文章…

讚一下:

下載:


0 意見:

程式 . 生活 . D小調.@2010 | Binary Design: One Winged Angel.