资源描述
从相机中获取图片
当用户使用手机拍照后,我们可以通过程序获取用户的照片。要完成这个操作需要使用在Microsoft.Phone.Tasks的命名空间中的选择器(Chooser)类和启动器(Launcher)类,启动器不返回任何数据,选择器有数据返回。
让我们来看下面给出的示例:
MainPage.xmal
<!--ContentPanel - 在此处放置其他内容-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Image Name="image1"/>
</Grid>
这里是完整的后台处理程序:
MainPage.xaml.cs
public partial class MainPage : PhoneApplicationPage
{
CameraCaptureTask camera = new CameraCaptureTask();
// 构造函数
public MainPage()
{
InitializeComponent();
camera.Completed += OnCameraCapTureTaskCompleted;//建议在构造函数中绑定事件
}
protected override void OnManipulationStarted(ManipulationStartedEventArgs e)
{
camera.Show();//显示相机程序
e.Complete();//表示操作已经完成
e.Handled = true;//事件完成,停止路由事件转发
base.OnManipulationStarted(e);
}
private void OnCameraCapTureTaskCompleted(object sender, PhotoResult args)
{
if (args.TaskResult == TaskResult.OK)//选择器操作完成
{
BitmapImage bmp = new BitmapImage();
bmp.SetSource(args.ChosenPhoto);//将照片数据的流赋给bmp对象
this.iamge1.Source = bmp;
}
}
}
触摸MainPage页面后会触发手机相机程序,模拟器会模拟一个拍照场景,点击拍照后,选择接受,后程序就会把照片显示在Image元素中,效果如下:
从手机图库中获取图片
我们可以也通过PhotoChooserTask类来引导用户进入手机图片库并选择照片,然后将结果返回给程序并显示出来。下面就是具体操作的代码:
MainPage.xmal
<!--ContentPanel - 在此处放置其他内容-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Image Name="image1"/>
</Grid>
MainPage.xmal.cs
public partial class MainPage : PhoneApplicationPage
{
PhotoChooserTask photoChooserTask;//声明任务对象。它必须具有页面范围,因此应在页面中的构造函数之前声明它。
// 构造函数
public MainPage()
{
InitializeComponent();
photoChooserTask = new PhotoChooserTask();//初始化任务对象
photoChooserTask.Completed += photoChooserTask_Completed;//标识要在用户完成任务后运行的方法。
}
protected override void OnManipulationStarted(ManipulationStartedEventArgs e)
{
try
{
photoChooserTask.Show();//启动任务
}
catch (System.InvalidOperationException ex)
{
MessageBox.Show("An error occurred:" + ex.ToString());
}
e.Complete();
e.Handled = true;
base.OnManipulationStarted(e);
}
private void photoChooserTask_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)//选择器操作完成
{
BitmapImage bmp = new BitmapImage();
bmp.SetSource(e.ChosenPhoto);//将照片数据的流赋给bmp对象
this.image1.Source = bmp;//将选择的图片显示出来
}
}
}
程序运行后,通过触摸MainPage页面就会打开手机图片库,选择好图片之后,程序会负责把图片显示到Image元素中,0万U豆体验卡
卡号:50D890668267e3349e33
密码:686d03401eefba96faba
奖品名称:500万U豆体验卡
卡号:50De7a00c543af387fc0
密码:b26488ce65abc1787202
奖品名称:500万U豆体验卡
卡号:50Dbac638
85c802fd52e
密码:3d1c344384327b85efff
奖品名称:500万U豆体验卡
卡号:50Dd97f0765bdf6998a3
密码:48db1c14e42a2b321fac
奖品名称:500万U豆体50D61
215eb41ae3cc919
密码:25bffae5346e7b7d2548
奖品名称:100万U豆体验卡
卡号:10D1cab621456ab278ab
密码:709f65f32865af2559c2
奖品名称:100万U豆体验卡
卡号:10D8f1d6a4b953f3474e
密码:6e2e4017cce30dc7e055
奖品名称:100万U豆体验卡
卡号:10Dd1fc6d6dd529b6892
密码:a5dbdd8338f91d2c0701
奖品名称:100万U豆体验卡
卡号:10D08377b71d4374262b
密码:1d7a7c21ebd99b798a54
展开阅读全文