Windows Phone 实用开发技巧(10):Windows Phone 中处理图片的技巧
在开发Windows Phone应用程序的时候,或多或少会与图片打交道,下面总结下Windows Phone 中处理图片的一些技巧
1. 图片格式.
2. 图片编译方式
3. 图片加载方式
4. 图片缓存
5. GIF图片
6. 图片大小限制
7. 图片选择器
1. 图片格式
我们知道在Windows Phone 中只支持JPG与PNG格式的图片,借助ImageTools类库我们可以在Windows Phone 中使用GIF图片。在Windows Phone 中推荐优先使用JPG格式的图片,因为在Windows Phone 中JPG图片的解码速度比PNG快,当然比GIF更快。除非是有透明背景的要求使用PNG图片,否则推荐使用JPG图片。除非要使用GIF动态图片,建议少使用ImageTools。
2. 图片编译方式
另外一个小区别是在引用的时候,斜杠(/ & \)的方向:
Content: <Image Source="/ImagesAsContent/smiley1.png"/>
Resource: <Image Source="..\ImagesAsResource\smiley3.png"/>
3. 图片加载方式
我们可以使用异步或者同步加载的方式去加载图片。
设置其UriSource是异步加载:BitmapImage.UriSource = uriSource;
设置其文件流是同步加载: BitmapImage.SetSource(stream); 注意异步加载图片并不是完全开启另外一个线程去操作的,因为正在下载的图片的解码工作还是发生的主要的UI线程上的。下面是异步与同步加载的一点总结:
如果你同步加载一个不存在的图片文件,你会得到一个异常;
如果你异步加载一个不存在的图片文件,ImageFailed事件被触发(如果你注册了这个事件);
如果你同步加载一个存在的图片文件,当加载完成时ImageOpened事件被触发;
如果你异步加载一个存在的图片文件,当加载完成时ImageOpened事件不会被触发。
4. 图片缓存
图片缓存是一个很好用的功能,如果使用得当会将你应用程序的性能提高不少,Bitmap缓存将可视化元素(visual elements)保存为bitmap在他们第一次被渲染的时候,以后你如果用到这个元素,不会再去渲染他而是使用缓存的bitmap
5. GIF图片
关于如果在Windows Phone 中显示GIF图片,我专门写过一篇博客介绍,如需要大家可以去看看 Windows Phone 实用开发技巧(8):在Windows Phone显示GIF图片
6. 图片大小限制
由于屏幕大小限制,在Windows Phone对图片的分辨率也有一定的限制。MS推荐在Windows Phone 中使用图片的分辨率不要超过2000*2000
Due to the limited screen resolution of Windows Phone, another way to optimize performance is to limit the image size to 2000 x 2000 pixels, which is the size limit of images in Windows Phone environment. Larger images will be sampled at a lower resolution. Also, if you use images that are larger than 2000 x 2000 pixels, they will be significantly slower to appear.
7.图片选择器
我们的应用中可能需要提供用户自己选择的图片的功能,这时候PhotoChooserTask就有用武之地了,他有一个Completed事件,返回的是选中照片的文件流,我们可以将流设置到页面中的图片控件中,其常见的用法如下:
这里有个小技巧跟大家分享下:PhotoChooserTask 可以返回指定像素的图片,即如果你只想获取图片中的部分作为返回,你只需要设置task的PixelHeight与PixelWidth即可。
本文转自xshf12345 51CTO博客,原文链接:http://blog.51cto.com/alexis/595851,如需转载请自行联系原作者
Windows Phone 实用开发技巧(10):Windows Phone 中处理图片的技巧相关推荐
- Windows Phone实用开发技巧(32):照片角度处理
在实际项目中,可能需要用户从相册中选择图片然后进行相应的处理.但是不知道大家有没有发现这样一种情况,就是手机里看是竖着的,但是上传到微博或者哪里的时候确实横着的.一种情况是你拿手机竖着拍照得话,照片就 ...
- Windows Phone实用开发技巧(1):保存图片及加载图片
在Windows Phone中,我们可能会有这样的需求:自定义应用程序的背景图片. 实际的流程是这样:用户选择图片,保存至隔离存储空间,(下一次启动时或者立即)加载图片使其成为背景图片. 下面以具体的 ...
- Windows Phone 实用开发技巧(9):自定义Windows Phone 页面切换动画
在Silverlight for Windows Phone ToolKit 中默认中有自带的页面Transitions:RollTransition.RotateTransition.SlideTr ...
- Windows Phone 实用开发技巧(3):输入框自动聚焦并打开SIP
大家看到这个标题,可以会问什么是SIP(看过我Windows Phone 7 Tips系列的童鞋应该知道),SIP全称为Soft Input Panel,即触摸屏中的输入键盘. 在Windows Ph ...
- Windows Phone 实用开发技巧(18):使用SystemTray显示全局消息提醒
在Windows Phone 7 (Nodo)之前的版本中,我们要在应用程序显示消息提醒,或者是进度提示,通常的做法在页面的顶部放置一个专门的容器(如一个Grid),里面放置一些文本和Performa ...
- caps lock_如何在Windows 7、8、10或Vista中禁用Caps Lock键
caps lock The caps lock key is a remnant of typewriters dating from the nineteenth century. Unless y ...
- 屌丝笔记本玩Windows Phone 8开发(在Windows Server 2012中安装WP8 SDK)
众所周知,Windows Phone 8模拟器需要Hyper-V支持,而Win8安装Hyper-v需要cpu的虚拟化支持二级地址转换技术(SLAT). 对于intel而言,支持SLAT的cpu必须是至 ...
- 在Windows 7、8、10、11中恢复Word文件的简单方法
"急急急!我使用快捷键"Shift + Delete"从我的电脑中删除了一些Word文件.但是我现在急需找回删除的Word文件,但我在回收站中找不到它们,并且我以前也没有 ...
- IOS开发笔记10-Object-C中的对象
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53513004 本文出自:[顾林海的博客] 前言 关于c语言的基础部分已 ...
最新文章
- 区块链技术之以太坊ETH白皮书
- cd命令无法切换路径(Windows下)
- 全球首款AI的操作系统来了!100%国产,像用Windows一样简单
- [Ruby编程语言].弗拉纳根_松本行弘读书笔记
- MongoDB对文档的操作
- 集群中几种session同步解决方案的比较[转]
- 初中计算机vb知识点,全国计算机等级考试VB知识点总结(全部).docx
- linux操作系统之读写锁
- linear在HTML的作用,CSS3里的linear-gradient()函数
- 小波阈值去噪原理及实现
- SAP License:瞎搞!你真的懂什么是ERP、中台和低代码吗?
- jquery各类资源整理
- 5. Linux 设备文件名
- android软件开发 开题报告,基于Android手机app开发与设计 毕业设计 开题报告
- 计算机中8位二进制机器数,一个字节由8位二进制数组成,其最大容纳的十进制整数为()...
- 修改Ceph 监视器地址
- mercury MW300R(mt7620n)GPIO研究
- 求求你们了,有什么能搞钱的副业
- 数据只有被交换共享,才能创造价值 | 推荐收藏
- 跟李沐学AI:实用机器学习 | 第一章