便利な PhotoChooserTask
#wp7dev_jp
Picture ハブから写真を選択する PhotoChooserTask。これ結構便利です。
まずはサンプルコード。新しいプロジェクトでこのコードを足すだけです。
// コンストラクター
public MainPage()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
PhotoChooserTask task = new PhotoChooserTask();
task.ShowCamera = true; //①カメラボタンの表示
task.PixelWidth = 456; //②トリミング幅
task.PixelHeight = 456; //②トリミング高さ
task.Completed +=
new EventHandler<PhotoResult>(task_Completed);
task.Show();
}
void task_Completed(object sender, PhotoResult e)
{
//取得後の処理
BitmapImage bmp = new BitmapImage();
bmp.SetSource(e.ChosenPhoto);
Image img = new Image();
img.Source = bmp;
ContentPanel.Children.Add(img);
}
カメラボタンを表示させる
PhotoChooserTask で ShowCamera プロパティ を True にすると Picture ハブでの選択画面でカメラボタンが追加されます。
撮影して画像を使う場合は、CameraCaptureTask に比べて(この画面でボタンを押す)1手間かかりますが、それでも便利。写真を選ぶか、写真を撮るか、まずこれを表示してから選ぶことができます。 更に、写真を撮ってからは PhotoChooserTask処理になるので実装が1つで済みます。
ユーザーに写真を選んでもらう際に、カメラボタンと、画像選択ボタンの2つを表示して ApplicationBarにボタンが4つしか置けないことを嘆いたこともあると思いますが、これでだいぶ楽になりますね。
トリミング機能をつける
撮影した後に、所定のサイズに変更するトリミング処理。実はこのPhotoChooserの中に含まれています。
PhotoChooserTask の Width/Height オプションを設定すると、トリミング処理が起動します。画面上の切り取り範囲の移動だけでなく、拡大縮小まで行うことができます。
わざわざトリミング機能を実装してた人もいるかもしれませんが、こんなに簡単にトリミングができるんです。
結果
上記の処理だけで、写真を選んでトリミングをして、画面に表示する処理が実装できます。
もし、使っていなかった方はぜひ試してみてください。