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. 圖片編譯方式
?
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*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.圖片選擇器
我們的應用中可能需要提供用戶自己選擇的圖片的功能,這時候PhotoChooserTask就有用武之地了,他有一個Completed事件,返回的是選中照片的文件流,我們可以將流設置到頁面中的圖片控件中,其常見的用法如下:?
?這里有個小技巧跟大家分享下:PhotoChooserTask?可以返回指定像素的圖片,即如果你只想獲取圖片中的部分作為返回,你只需要設置task的PixelHeight與PixelWidth即可。
? ? 本文轉自xshf12345 51CTO博客,原文鏈接:http://blog.51cto.com/alexis/595851,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的Windows Phone 实用开发技巧(10):Windows Phone 中处理图片的技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos5.4 安装配置oracle
- 下一篇: 3-unit1 IPv6网络的管理