windows phone:图片(三)

手机图片库

操作手机图片库是一种常见的操作,在手机中运行的程序可以通过下列两种方法来访问该图片库:

1.从程序角度看,PhotoChooserTask与CameraCaptureTask非常类似,但是它会引导用户进入图片库并选择照片,然后将选择结果返回给程序

下面代码片段演示如何打开照片选择器应用程序和选择照片后返回的处理:

PhotoChooserTask photoChooser = new PhotoChooserTask();

photoChooser.Completed += OnPhotoChooserCompleted; //添加选择器完成时事件触发

photoChooser.PixelWidth = 100;
photoChooser.PixelHeight = 100;
photoChooser.Show();//打开照片选择器

BitmapImage bitmapImage = new BitmapImage(); //用于下面的示例

void OnPhotoChooserCompleted(object sender, PhotoResult args)
{

        if (args.Error == null && args.ChosenPhoto != null)
         {//确实选择了照片时

                    Stream stream = args.ChosenPhoto;  //获取包含照片数据的流

                    bitmapImage.SetSource(stream);

                    ...

         }

         ...

}

2.XNA命名空间Microsoft.Xna.Framework.Media具有MediaLibrary类及其相关类,它们能够使程序获得储存在图片库中所有图片的集合,并将它们呈现给用户

下面代码片段演示如何保存位图到图片库:

WriteableBitmap writeableBitmap = new WriteableBitmap(bitmapImage);   //这里的bitmapImage是一个BitmapImage对象

MemoryStream memoryStream = new MemoryStream(); //内存流
writeableBitmap.SaveJpeg(memoryStream, writeableBitmap.PixelWidth, writeableBitmap.PixelHeight, 0, 75);  //经压缩,这样就比没压缩要节省空间
memoryStream.Position = 0;

MediaLibrary mediaLib = new MediaLibrary();
mediaLib.SavePicture(filename, memoryStream); //参数filename是要保存的文件名称,这是要注意的是文件权限问题

 访问图片库里面的图片Picture对象:

PictureCollection picCollection = mediaLib.SavedPictures; //获取媒体库中图片的集合

Picture pic = picCollection[0]; //访问指定Picture对象,当然也可以经过循环的方式来访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值