windows phone 获取手机图片库中图片 推荐
2012-04-08 23:24
176 查看
前置条件:手机和电脑未连接或连接电脑Zune软件关闭(与Zune软件连接时不允许访问图片库); 版本7.1
获取手机图片库图片的两种方式: PhotChooserTask方式和XNA方式进行获取
PhotChooserTask获取
引用命名空间
//引用
//PhotoChooserTask类用到
using Microsoft.Phone.Tasks;
//BitmapImage类用到
using System.Windows.Media.Imaging;
复制代码
隐藏文件代码:
View Code
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 = 50;
//设置剪切区域的高度
photoChoose.PixelHeight = 100;
}
}
}
复制代码
知识点①:PhotoChooserTask类的属性,该属性表示是否显示启动相机按钮,一般显示比较好,增加图片来源途径
知识点②:通俗的讲应该是设置或者获取截取区域的高度和宽度
小结: 有裁剪功能是一大特色
XNA方式获取
引用命名空间
//引用XNA库
using Microsoft.Xna.Framework.Media;
//BitmapImage类用到
using System.Windows.Media.Imaging;
复制代码
MediaLibrary应该可以译为媒体库,它包含了影音,图片,是所有媒体的集合
隐藏文件代码:
View Code
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>1)
{
BitmapImage bi = new BitmapImage();
//知识点②
Picture pc=pic[0];
bi.SetSource(pc.GetImage());
img.Source = bi;
txtName.Text = "图片名称:" + pc.Name + ";\n该图片相集名称:" + pc.Album.Name + ";\n获取照片摄制时间" + pc.Date;
}
}
}
}
复制代码
知识点①:MediaLibrary是个很有用的类,比如你可以获得里面的歌曲
View Code
MediaLibrary mediaL = new MediaLibrary();
SongCollection sc = mediaL.Songs;
if (sc.Count > 1)
{
Song s = sc[0];
MediaPlayer.Play(s);
}
复制代码
知识点②:Picture类的一些属性或者方法会用得到,比如当前图片所在的相集,相集下是否还会包含相集,以及相集的名称,时间等
小结:整体的思路是从集合中逐级剥离,媒体库(影音,图片)-------》图片集合------》图片-----》图片相关属性;之前忘记从哪个博主那里看到如果用到XNA中的类,在提交应用的时候不能通过
运行后的效果图:
获取手机图片库图片的两种方式: PhotChooserTask方式和XNA方式进行获取
PhotChooserTask获取
引用命名空间
//引用
//PhotoChooserTask类用到
using Microsoft.Phone.Tasks;
//BitmapImage类用到
using System.Windows.Media.Imaging;
复制代码
隐藏文件代码:
View Code
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 = 50;
//设置剪切区域的高度
photoChoose.PixelHeight = 100;
}
}
}
复制代码
知识点①:PhotoChooserTask类的属性,该属性表示是否显示启动相机按钮,一般显示比较好,增加图片来源途径
知识点②:通俗的讲应该是设置或者获取截取区域的高度和宽度
小结: 有裁剪功能是一大特色
XNA方式获取
引用命名空间
//引用XNA库
using Microsoft.Xna.Framework.Media;
//BitmapImage类用到
using System.Windows.Media.Imaging;
复制代码
MediaLibrary应该可以译为媒体库,它包含了影音,图片,是所有媒体的集合
隐藏文件代码:
View Code
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>1)
{
BitmapImage bi = new BitmapImage();
//知识点②
Picture pc=pic[0];
bi.SetSource(pc.GetImage());
img.Source = bi;
txtName.Text = "图片名称:" + pc.Name + ";\n该图片相集名称:" + pc.Album.Name + ";\n获取照片摄制时间" + pc.Date;
}
}
}
}
复制代码
知识点①:MediaLibrary是个很有用的类,比如你可以获得里面的歌曲
View Code
MediaLibrary mediaL = new MediaLibrary();
SongCollection sc = mediaL.Songs;
if (sc.Count > 1)
{
Song s = sc[0];
MediaPlayer.Play(s);
}
复制代码
知识点②:Picture类的一些属性或者方法会用得到,比如当前图片所在的相集,相集下是否还会包含相集,以及相集的名称,时间等
小结:整体的思路是从集合中逐级剥离,媒体库(影音,图片)-------》图片集合------》图片-----》图片相关属性;之前忘记从哪个博主那里看到如果用到XNA中的类,在提交应用的时候不能通过
运行后的效果图:
相关文章推荐
- windows phone 获取手机图片库中图片(4)
- windows phone 获取手机图片库中图片(4)
- windows phone 获取手机图片库中图片(4)
- windows phone 7 获取手机图片库中图片
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- Android开发之获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- android获取手机上的图片和视频缩略图thumbnails
- 获取手机录音和视频和图片
- Android-获取手机上所有图片
- 获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- Android--使用手机拍照获取图片路径,小米手机选择照片问题处理
- Android 获取手机系统图片、拍照图片时回调后通过URI解析路径的方法,比较全面!!!!
- windows phone 使用相机并获取图片(3)
- Android中获取网络图片的方法(如果手机缓存里面有就从缓存获取)
- 获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- 最完整的获取android手机图片并显示到控件的解决方案
- 今日推荐:12个获取手机应用程序设计灵感的网站
- android中的ContentResolver获取手机本地图片
- 利用RxJava获取手机已安装的App的图片、应用名称和版本号
- android 手机拍照后获取图片导致OOM问题