当前位置:首页 > CN2资讯 > 正文内容

Windows Phone 实用开发技巧(10):Windows Phone 中处理图片的技巧

3天前CN2资讯

 在开发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. 图片编译方式

 

Windows Phone 7中图片为Resource和Content的区别: 生成方式为Resource的图片会被编译到应用程序集(DLL)里,而生成方式为Content的图片则会被部署到XAP包中。
当你把你的图片copy到项目中,图片的生成动作默认是资源(Resource),但我通常选择Content以获取更快的速度。我们应该如何选择图片的生成方式(Build Action)呢? 每种生成方式都有其用武之地:设置生成方式为Content意味着应用程序可以更快的加载图片资源;将生成方式设为Resource对你重新部署程序非常有用,这对类库项目十分合适的。  另外一个小区别是在引用的时候,斜杠(/ & \)的方向:

 

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 p_w_picpath size to 2000 x 2000 pixels, which is the size limit of p_w_picpaths in Windows Phone environment. Larger p_w_picpaths will be sampled at a lower resolution. Also, if you use p_w_picpaths that are larger than 2000 x 2000 pixels, they will be significantly slower to appear.

7.图片选择器

我们的应用中可能需要提供用户自己选择的图片的功能,这时候PhotoChooserTask就有用武之地了,他有一个Completed事件,返回的是选中照片的文件流,我们可以将流设置到页面中的图片控件中,其常见的用法如下:
 
 这里有个小技巧跟大家分享下:PhotoChooserTask 可以返回指定像素的图片,即如果你只想获取图片中的部分作为返回,你只需要设置task的PixelHeight与PixelWidth即可。
    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/28331.html

    分享给朋友:

    “Windows Phone 实用开发技巧(10):Windows Phone 中处理图片的技巧” 的相关文章

    bwghost全面指南:如何选择、购买和优化搬瓦工VPS服务

    bwghost的基本介绍 bwghost是一个与搬瓦工(BandwagonHost)紧密相关的术语。搬瓦工是一家来自加拿大的VPS服务提供商,专注于提供基于KVM架构的虚拟专用服务器(VPS)。他们的服务覆盖多个地区,包括香港CN2 GIA和洛杉矶DC6 CN2 GIA-E等。搬瓦工的官网是bwg....

    HostHatch优惠活动揭秘:如何以最低价格获取优质主机服务

    当提到主机服务,HostHatch绝对是个值得信赖的品牌。作为一家成立超过十年的主机商,HostHatch专注于提供高性能的NVMe VPS和大硬盘存储型专用主机。为什么会选择HostHatch呢?除了卓越的服务和强大的基础设施外,吸引人的优惠活动也是一个重要因素。 最近,HostHatch推出了针...

    最佳Mac SSH连接工具推荐:轻松管理远程服务器

    随着远程工作和云计算的普及,SSH协议成为了连接服务器和管理远程设备的重要工具。在Mac上,有许多SSH连接工具可供选择,让我们来逐一了解它们的特点和应用场景。 SSH协议简介 SSH,即安全外壳协议,是一种用于安全登录远程主机的网络协议。它提供了一条加密的连接通道,确保数据在传输过程中的安全性。通...

    主机论坛:获取信息与交流经验的最佳平台

    主机论坛概述 在当今的数字时代,主机论坛作为一个专注于域名、主机、VPS和服务器的讨论与信息交流平台,显得尤为重要。对于站长、开发者和一般用户来说,它们不仅是资讯获取的渠道,更是一个技术交流和问题解决的空间。主机论坛通过汇聚来自不同背景的用户,形成了一个活跃的社区,每个人都能找到自己感兴趣的话题,分...

    如何有效购买和使用代理IP服务,满足多种需求 - IP够卖指南

    在我们开始讨论“IP够卖”的购买与应用流程之前,理解购买渠道的多样性非常重要。很多人可能会问,究竟从哪里可以获取到合适的代理IP?实际上,有几种渠道可以选择,适合不同需求的用户。 首先,专业代理服务商无疑是最推荐的选择。这类服务商通常提供稳定且高质量的代理服务,能满足诸多使用场景,比如数据爬虫、电商...

    使用getenforce命令管理SELinux执行模式的技巧与经验

    getenforce的基本概念 当我开始接触Linux系统的时候,SELinux这个名字总是让我感到神秘。经过逐渐的探索,我了解到SELinux(Security-Enhanced Linux)是一个强大的安全模块,它为Linux系统提供了细致的访问控制。这时候,getenforce命令便进入了我的...