设为首页 收藏本站
查看: 1028|回复: 0

Windows Phone 7:<四>使用媒体库访问图片

[复制链接]

尚未签到

发表于 2015-5-11 09:10:13 | 显示全部楼层 |阅读模式
作者:http://www.iyunv.com/gaowenbin/ 高文彬
:随机获取MediaLibrary的图片
在Windows Phone 7应用程序中使用MediaLibrary,首先我们的添加引用Microsoft.Xna.Framework.Media,Media提供了访问歌曲,播放列表和图片,下面我们将使用媒体API来访问图片
    DSC0000.jpg
  MainPage.xaml内容区,在包含一个Image和TextBlock在Grid



  
    
  











  


MediaLibrary mediaLib = new MediaLibrary(); // 实例化MediaLibrary
Random rand = new Random();                 // 产生随机数


      PictureCollection类提供访问设备的媒体库中的图片。使用  MediaLibrary.Picture属性来获得该的媒体库中的所有图片的集合,并使PictureAlbum.Pictures 属  性来获得特定图片相册中的图片的集合。




  ///
/// 获取图片
///
public void GetRandomPicture()
{
// PictureCollection 类提供访问设备的媒体库中的图片集合
PictureCollection pictures = mediaLib.Pictures;
if (pictures.Count > 0)
{
// 产生随机数
int index = rand.Next(pictures.Count);
Picture pic = pictures[index];
BitmapImage bmp = new BitmapImage();
bmp.SetSource(pic.GetImage());
img.Source = bmp;
txtblk.Text = String.Format("{0}\n{1}\n{2}",
pic.Name, pic.Album.Name, pic.Date);
}
}


      在GetRandomPicture方法中,通过随机从PictureCollection对象挑选。img对象有一个GetImage方法返回一个stream和一个名称,相册和数据信息将显示在    TextBlock。 DSC0001.jpg
  :使用MediaLibrary添加图片
  前面发现MediaLibrary中有个SavePicture(),它包含了一个string类型的参数需要保存图片的名称,另外一个是byte[]类型的图片数据。 添加图前,可以对设备进行判断,使用DeviceType判断设备是否是模拟器,DeviceType == DeviceType.Emulator,同时也判断该模拟器是否存在上传的图片。
  图片的名称用List来保存,这样可能有点死板,通过遍历List集合得到的图片名称,然后用组合成Uri,Uri的类型可以是觉得路径和相对路径


  



        public void AddPictures()
{
// 使用Using 自动释放资源
using (MediaLibrary mediaLib = new MediaLibrary())
{
// 判断是否已添加图片
if (Microsoft.Devices.Environment.DeviceType == DeviceType.Emulator && mediaLib.Pictures.Count == 0)
{
// 创建包含图片名称的List集合
List myPicList = new List()
{
"test1.jpg",
"test2.jpg",
};
// 通过遍历集合得到图片的名称
foreach (var item in myPicList)
{
// 组合成正确的Uri
Uri myUri = new Uri(string.Format(@"Img/{0}",item),UriKind.Relative);
// 获取流
using (Stream imgStream = App.GetResourceStream(myUri).Stream)
{
// 保存图片
mediaLib.SavePicture(item,imgStream);
}
}
}
}
}

  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-65685-1-1.html 上篇帖子: 【MSDN原版】Windows 7 with SP1各版本下载 下篇帖子: [WinOS]:无需vpc制作windows 7 native boot.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表