Windows Phone 实用开发技巧(10):Windows Phone 中处理图片的技巧
?在開(kāi)發(fā)Windows Phone應(yīng)用程序的時(shí)候,或多或少會(huì)與圖片打交道,下面總結(jié)下Windows Phone 中處理圖片的一些技巧
1. ?圖片格式.2. ?圖片編譯方式
3. ?圖片加載方式
4. ?圖片緩存
5. ?GIF圖片
6. ?圖片大小限制
7.?圖片選擇器
1. ?圖片格式
?我們知道在Windows Phone 中只支持JPG與PNG格式的圖片,借助ImageTools類庫(kù)我們可以在Windows Phone 中使用GIF圖片。在Windows?Phone 中推薦優(yōu)先使用JPG格式的圖片,因?yàn)樵赪indows Phone 中JPG圖片的解碼速度比PNG快,當(dāng)然比GIF更快。除非是有透明背景的要求使用PNG圖片,否則推薦使用JPG圖片。除非要使用GIF動(dòng)態(tài)圖片,建議少使用ImageTools。
2. 圖片編譯方式
?
Windows Phone 7中圖片為Resource和Content的區(qū)別: 生成方式為Resource的圖片會(huì)被編譯到應(yīng)用程序集(DLL)里,而生成方式為Content的圖片則會(huì)被部署到XAP包中。當(dāng)你把你的圖片copy到項(xiàng)目中,圖片的生成動(dòng)作默認(rèn)是資源(Resource),但我通常選擇Content以獲取更快的速度。我們應(yīng)該如何選擇圖片的生成方式(Build Action)呢? 每種生成方式都有其用武之地:設(shè)置生成方式為Content意味著應(yīng)用程序可以更快的加載圖片資源;將生成方式設(shè)為Resource對(duì)你重新部署程序非常有用,這對(duì)類庫(kù)項(xiàng)目十分合適的。 ?另外一個(gè)小區(qū)別是在引用的時(shí)候,斜杠(/ & \)的方向:
?
Content:?<Image?Source="/ImagesAsContent/smiley1.png"/>
?
Resource:?<Image?Source="..\ImagesAsResource\smiley3.png"/>?
3. ?圖片加載方式
我們可以使用異步或者同步加載的方式去加載圖片。?設(shè)置其UriSource是異步加載:BitmapImage.UriSource = uriSource;
設(shè)置其文件流是同步加載:?BitmapImage.SetSource(stream);???注意異步加載圖片并不是完全開(kāi)啟另外一個(gè)線程去操作的,因?yàn)檎谙螺d的圖片的解碼工作還是發(fā)生的主要的UI線程上的。下面是異步與同步加載的一點(diǎn)總結(jié):
如果你同步加載一個(gè)不存在的圖片文件,你會(huì)得到一個(gè)異常;
如果你異步加載一個(gè)不存在的圖片文件,ImageFailed事件被觸發(fā)(如果你注冊(cè)了這個(gè)事件);
如果你同步加載一個(gè)存在的圖片文件,當(dāng)加載完成時(shí)ImageOpened事件被觸發(fā);
如果你異步加載一個(gè)存在的圖片文件,當(dāng)加載完成時(shí)ImageOpened事件不會(huì)被觸發(fā)。
4. 圖片緩存
?圖片緩存是一個(gè)很好用的功能,如果使用得當(dāng)會(huì)將你應(yīng)用程序的性能提高不少,Bitmap緩存將可視化元素(visual elements)保存為bitmap在他們第一次被渲染的時(shí)候,以后你如果用到這個(gè)元素,不會(huì)再去渲染他而是使用緩存的bitmap?
5. GIF圖片
?關(guān)于如果在Windows Phone 中顯示GIF圖片,我專門寫過(guò)一篇博客介紹,如需要大家可以去看看?Windows Phone 實(shí)用開(kāi)發(fā)技巧(8):在Windows Phone顯示GIF圖片?
6. 圖片大小限制
由于屏幕大小限制,在Windows Phone對(duì)圖片的分辨率也有一定的限制。MS推薦在Windows Phone 中使用圖片的分辨率不要超過(guò)2000*2000Due 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.圖片選擇器
我們的應(yīng)用中可能需要提供用戶自己選擇的圖片的功能,這時(shí)候PhotoChooserTask就有用武之地了,他有一個(gè)Completed事件,返回的是選中照片的文件流,我們可以將流設(shè)置到頁(yè)面中的圖片控件中,其常見(jiàn)的用法如下:?
?這里有個(gè)小技巧跟大家分享下:PhotoChooserTask?可以返回指定像素的圖片,即如果你只想獲取圖片中的部分作為返回,你只需要設(shè)置task的PixelHeight與PixelWidth即可。
? ? 本文轉(zhuǎn)自xshf12345 51CTO博客,原文鏈接:http://blog.51cto.com/alexis/595851,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的Windows Phone 实用开发技巧(10):Windows Phone 中处理图片的技巧的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: centos5.4 安装配置oracle
- 下一篇: OpenGL ES for Window