我正在嘗試從Facebook加載圖片。如果用戶設置了個人資料圖片,那麼圖片就是jpg,但是,如果用戶沒有設置,那麼圖片就是gif格式的存根圖片。我知道wp7不支持顯示gif圖像(開箱即用)。有什麼方法可以檢測出最終的圖片是不是gif?如何在windows phone 7中顯示gif圖像?
例如,我做出這樣的BitmapImage的:
BitmapImage img = new BitmapImage(new Uri("https://graph.facebook.com/userid1/picture"))
此URI,用戶沒有資料圖片。所以我在https://fbcdn-profile-a.akamaihd.net/static-ak/rsrc.php/v1/yo/r/UlIqmHJn-SK.gif上看到了一個stub gif圖像。
如果用戶確實有圖像,那麼我請求如下。
BitmapImage img = new BitmapImage(new Uri("https://graph.facebook.com/userid2/picture"))
針對上述網址我得到帶到一個網址像這樣:https://fbcdn-profile-a.akamaihd.net/hprofile-ak-snc4/000000_1621037713_00000000_q.jpg
我的問題是,那麼,一旦我得到的BitmapImage對象,IMG,我能確定這是否是一個JPG或GIF?如果它是gif,我可以將它轉換爲JPG嗎?
我看了一些相關的問題,但是討論的API異步加載鏡像,這不是我想要的。此外,文件很差。
任何幫助表示讚賞。
沒關係,我按照這裏的說明:Display GIF in a WP7 application with Silverlight。用戶給了一個很好的步行通過。
在你做這個用戶建議的事情之前你需要做的是從codeplex下載源代碼。
那麼你需要從http://bitmiracle.com/libjpeg/下載BitMiracle的JPEG庫。
繼續進入/ src/ImageTools目錄並打開ImageTools.Phone.sln。將ImageTools.IO.Jpeg.Phone項目添加到解決方案。
當你構建解決方案時,它會抱怨沒有找到BitMiracle的JPEG DLL,繼續並參考該Jpeg項目的DLL。再次建立,它應該工作。
順便說一下,我做試試從http://imagetools.codeplex.com這個API。但是,wp7 DLLs沒有JPG編碼器,所以控件可以顯示GIF,但不能顯示JPG。 – 2012-02-09 00:55:51
真是痛苦。 wp7應該知道GIF非常受歡迎,並且仍然存在。另一方面,Facebook應該知道是一致的(無論是所有的JPG還是所有的GIF)。我當然希望wp7支持開箱即用的GIF,並且臉書更符合他們的形象。 – 2012-02-09 01:08:57
我不認爲我有足夠的積分來做到這一點,但克里斯。 :(事實上,我先試了一下。 – 2012-02-09 11:19:34