原文:windows phone 获取手机图片库中图片(4)

前置条件:手机和电脑未连接或连接电脑Zune软件关闭(与Zune软件连接时不允许访问图片库); 版本7.1

获取手机图片库图片的两种方式: PhotChooserTask方式和XNA方式进行获取

PhotChooserTask获取

引用命名空间

//引用//PhotoChooserTask类用到using Microsoft.Phone.Tasks;//BitmapImage类用到using System.Windows.Media.Imaging;

隐藏文件代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
//引用
//PhotoChooserTask类用到
using Microsoft.Phone.Tasks;
//BitmapImage类用到
using System.Windows.Media.Imaging;

namespace ChoosePhoto
{
    public partial class MainPage : PhoneApplicationPage
    {
        //实例化图片选择器
        PhotoChooserTask photoChoose = new PhotoChooserTask();
        // 构造函数
        public MainPage()
        {
            InitializeComponent();
            //设置的委托事件
            photoChoose.Completed += new EventHandler<PhotoResult>(photoChoose_Completed);
        }
        //事件处理完得到图片
        void photoChoose_Completed(object sender, PhotoResult e)
        {
            if (e.TaskResult==TaskResult.OK)
            {
                //实例化位图
                BitmapImage bi = new BitmapImage();
                //设置位图源
                bi.SetSource(e.ChosenPhoto);
                //设置元素位图
                img.Source = bi;
                txtName.Content = e.OriginalFileName;
                
            }
        }
        /// <summary>
        /// button事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void txtName_Click(object sender, RoutedEventArgs e)
        {
            //打开图片库
            photoChoose.Show();
            //知识点①
            //是否显示拍照按钮
            photoChoose.ShowCamera = true;
            //知识点②
            //设置剪切区域的宽度
            photoChoose.PixelWidth = ;
            //设置剪切区域的高度
            photoChoose.PixelHeight = ;
        }
    }
}

知识点①:PhotoChooserTask类的属性,该属性表示是否显示启动相机按钮,一般显示比较好,增加图片来源途径

知识点②:通俗的讲应该是设置或者获取截取区域的高度和宽度

小结: 有裁剪功能是一大特色

XNA方式获取

引用命名空间

//引用XNA库using Microsoft.Xna.Framework.Media;//BitmapImage类用到using System.Windows.Media.Imaging;

MediaLibrary应该可以译为媒体库,它包含了影音,图片,是所有媒体的集合

隐藏文件代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
//引用XNA库
using Microsoft.Xna.Framework.Media;
//BitmapImage类用到
using System.Windows.Media.Imaging;

namespace XNAChoosePhoto
{
    public partial class MainPage : PhoneApplicationPage
    {
        
        //知识点①
        MediaLibrary mediaL = new MediaLibrary();
        // 构造函数
        public MainPage()
        {
            InitializeComponent();
            //获得图片的方法
            GetPic();
        }
        /// <summary>
        /// 获得一张图片
        /// </summary>
        void GetPic()
        {
            //获得媒体库中所有的图片
            PictureCollection pic = mediaL.Pictures;
            if (pic.Count>)
            {
                BitmapImage bi = new BitmapImage();
                //知识点②
                Picture pc=pic[];
                bi.SetSource(pc.GetImage());
                img.Source = bi;
                txtName.Text = "图片名称:" + pc.Name + ";\n该图片相集名称:" + pc.Album.Name + ";\n获取照片摄制时间" + pc.Date;
            }
        }
    }
}

知识点①:MediaLibrary是个很有用的类,比如你可以获得里面的歌曲

  MediaLibrary mediaL = new MediaLibrary();
            SongCollection sc = mediaL.Songs;
            if (sc.Count > )
            {
                Song s = sc[];
                MediaPlayer.Play(s);
            }

知识点②:Picture类的一些属性或者方法会用得到,比如当前图片所在的相集,相集下是否还会包含相集,以及相集的名称,时间等

小结:整体的思路是从集合中逐级剥离,媒体库(影音,图片)-------》图片集合------》图片-----》图片相关属性;之前忘记从哪个博主那里看到如果用到XNA中的类,在提交应用的时候不能通过

运行后的效果图:

windows phone 获取手机图片库中图片(4)的更多相关文章

  1. Java解析word,获取文档中图片位置

    前言(背景介绍): Apache POI是Apache基金会下一个开源的项目,用来处理office系列的文档,能够创建和解析word.excel.ppt格式的文档. 其中对word文档的处理有两个技术 ...

  2. 怎么获取WebAPI项目中图片在服务端的路径

    1.这是我的项目结构. 2.路径格式为:[http://服务器域名/文件夹/文件.扩展名] 测试:假如我要获取到[logo_icon.jpg]这张图.在浏览器的地址栏中输入上面那个格式的路径. 3.可 ...

  3. JS限定手机版中图片大小随分辨率自动调整

    <script type="text/javascript"> var ObjImg = jQuery(".Dy_Content img"); fo ...

  4. Android_(控件)使用Gallery浏览手机上SD卡中图片

    运行截图: (发现后面两张照片是自己自拍,大写的尴尬对图片进行涂鸦了!!!) 程序结构: <?xml version="1.0" encoding="utf-8&q ...

  5. iOS相册中图片按照时间排序

    ios相册默认是按照时间从过去到现在排列,图片顺序有正序和逆序,group可以用以下方法来选择顺序 /** @param NSIndexSet 需要获取的相册中图片范围 @param NSEnumer ...

  6. 在手机网页中使用USEMAP

    因为手机网页中图片大多数使用百分比显示 所以USEMAP的坐标错位 http://files.cnblogs.com/files/jweb/jquery.rwdImageMaps.min.js < ...

  7. 如何在 Windows Phone 8 中获取手机的当前位置

    原文 如何在 Windows Phone 8 中获取手机的当前位置 适用于:仅限于 Windows Phone 8. 本主题演示如何使用 Windows Phone 位置 API 确定手机的当前位置. ...

  8. 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)

    众所周知,通过PackageManager可以获取手机端已安装的apk文件的信息,具体代码如下 PackageManager packageManager = this.getPackageManag ...

  9. XML序列化 判断是否是手机 字符操作普通帮助类 验证数据帮助类 IO帮助类 c# Lambda操作类封装 C# -- 使用反射(Reflect)获取dll文件中的类型并调用方法 C# -- 文件的压缩与解压(GZipStream)

    XML序列化   #region 序列化 /// <summary> /// XML序列化 /// </summary> /// <param name="ob ...

随机推荐

  1. 《转》OpenStack Live Migration

    This post is based assumption that KVM as hypervisor, and Openstack is running in Grizzly on top of ...

  2. 获取信息的有关Windows API(最有意思是OpenProcess和GetProcessMemoryInfo)

    1.窗口信息MS为我们提供了打开特定桌面和枚举桌面窗口的函数.hDesk = OpenDesktop(lpszDesktop, 0, FALSE, DESKTOP_ENUMERATE);// 打开我们 ...

  3. find . / -newer oldest_file.txt ! -newer newest_file.txt

    如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项. 它的一般形式为: $ find . / -newer oldest_file.txt ! -newer newe ...

  4. expect 参数处理之一

    expect 参数处理之一 expect是很强悍的脚本,网上资源虽然很经典,但很少,我把自己的测试脚本贴之,仅作参考 #!/usr/bin/expect -f proc help {} { puts ...

  5. sqlserver 存储过程学习笔记(二) 在项目中的应用<多表分页>

    (1)存储过程建立 USE [NewPlat] GO /****** Object:  StoredProcedure [dbo].[usp_PagingLarge]    Script Date: ...

  6. BestCoder Round #3HDU 4907

    1. HDU 4907:http://acm.hdu.edu.cn/showproblem.php?pid=4907 中文题我就不说题意了,直接说解题思路吧! ① 第一种思路就是我比赛时的思路,将a数 ...

  7. 重拾linux

    重拾linux 起因 因为想重拾起linux,同时需要用docker起几个镜像,用来学习网络知识.本来想直接去阿里云上买,后来一想自己机器上,起一个linux是个不错的选择,毕竟不花钱! 还可以用来做 ...

  8. WM_SYSCOMMAND消息命令整理 good

    注意:1. 使用WM_SYSCOMMAND时,鼠标的一些消息可能会受到影响,比如不能响应MouseUp事件,可以在窗口中捕获WM_SYSCOMMAND消息,并判断消息的CommandType来判断消息 ...

  9. robots.txt禁止搜索引擎收录

    禁止搜索引擎收录的方法         一.什么是robots.txt文件? 搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信息. 您可以在您的网站中创建一个纯文 ...

  10. lightoj 1297(三分)

    传送门:Largest Box 题意:长度为L宽度为W的纸四个角去掉x*x的正方形,然后形成一个长方体,问能组成长方体的最大体积为多少. 分析:三分x求最值. #include <cstdio& ...