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

Windows Phone 7 图片处理技巧

[复制链接]

尚未签到

发表于 2015-5-13 07:41:07 | 显示全部楼层 |阅读模式
  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以获取更快的速度。 每种生成方式都有其用武之地:

设置生成方式为Content意味着应用程序可以更快的加载图片资源;

将生成方式设为Resource对你重新部署程序非常有用,这对类库项目十分合适的。   另外一个小区别是在引用的时候,斜杠(/ & \)的方向:
  Content:
  Resource:
  3. 图片加载方式
  我们可以使用异步或者同步加载的方式去加载图片。
设置其UriSource是异步加载:BitmapImage.UriSource =
uriSource;
设置其文件流是同步加载: BitmapImage.SetSource(stream);
  注意异步加载图片并不是完全开启另外一个线程去操作的,
  因为正在下载的图片的解码工作还是发生的主要的UI线程上的。
  下面是异步与同步加载的一点总结:
如果你同步加载一个不存在的图片文件,你会得到一个异常;
如果你异步加载一个不存在的图片文件,ImageFailed事件被触发(如果你注册了这个事件);
如果你同步加载一个存在的图片文件,当加载完成时ImageOpened事件被触发;
如果你异步加载一个存在的图片文件,当加载完成时ImageOpened事件不会被触发。
  4. 图片缓存
  图片缓存是一个很好用的功能,如果使用得当会将应用程序的性能提高不少,
  Bitmap缓存将可视化元素(visual elements)保存为bitmap在他们第一次被渲染的时候,
  以后你如果用到这个元素,不会再去渲染他而是使用缓存的bitmap。
  6. 图片大小限制
  由于屏幕大小限制,在Windows Phone对图片的分辨率也有一定的限制。
  MS推荐在Windows Phone 中使用图片的分辨率不要超过2000*2000
  7.图片选择器
  我们的应用中可能需要提供用户自己选择的图片的功能,这时候PhotoChooserTask就有用武之地了,
  他有一个Completed事件,返回的是选中照片的文件流,
  我们可以将流设置到页面中的图片控件中,其常见的用法如下:
[img]http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C:/Users/Administrator/AppData/Local/Temp/CyberArticle/c48b34bf0dd00d4468e9783e19dc9ff0_files/20110624wp701[1].jpg[/img]
[img]http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C:/Users/Administrator/AppData/Local/Temp/CyberArticle/c48b34bf0dd00d4468e9783e19dc9ff0_files/20110624wp701[1].jpg[/img]



private void button1_Click(object sender, RoutedEventArgs e)
{
PhotoChooserTask task = new PhotoChooserTask();
task.Completed += new EventHandler(task_Completed);
task.Show();
}
void task_Completed(object sender, PhotoResult e)
{
if (e.Error == null && e.TaskResult == TaskResult.OK)
{
BitmapImage bmpImage = new BitmapImage();
bmpImage.SetSource(e.ChosenPhoto);
image.Source = bmpImage;
}
}

  PhotoChooserTask
可以返回指定像素的图片,
  如果你只想获取图片中的部分作为返回,你只需要设置task的PixelHeight与PixelWidth即可。

运维网声明 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-66374-1-1.html 上篇帖子: Windows Phone 7 学习笔记1:Hello, Windows Phone 7 下篇帖子: Windows Phone 7 Bitmap编码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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