Как отобразить GIF-изображение в Windows Phone 7? - PullRequest
0 голосов
/ 09 февраля 2012

Я пытаюсь загрузить изображения с Facebook. если пользователь установил изображение профиля, то это изображение jpg, однако, если пользователь не установило его, то это изображение является заглушкой в ​​формате gif. Я знаю, что wp7 не поддерживает отображение изображений GIF (из коробки). Есть ли способ определить, является ли окончательное изображение GIF или нет?

например, я делаю BitmapImage так:

BitmapImage img = new BitmapImage(new Uri("https://graph.facebook.com/userid1/picture"))

для этого пользователя, у пользователя нет изображения профиля. так что я попал в заглушку GIF-изображения на https://fbcdn -profile-a.akamaihd.net / static-ak / rsrc.php / v1 / yo / r / UlIqmHJn-SK.gif .

если у пользователя есть изображение, тогда я запрашиваю его следующим образом.

BitmapImage img = new BitmapImage(new Uri("https://graph.facebook.com/userid2/picture"))

для указанного выше URL я перехожу на следующий URL: https://fbcdn -profile-a.akamaihd.net / hprofile-ak-snc4 / 000000_1621037713_00000000_q.jpg

Мой вопрос: как только я получу объект BitmapImage, img, могу ли я определить, является ли это JPG или GIF? Могу ли я преобразовать его в JPG, если это GIF?

Я посмотрел на некоторые связанные вопросы, но обсуждаемый API загружал изображение асинхронно, а сейчас это не то, что я хотел. кроме того, была плохая документация.

любая помощь приветствуется.

не важно, я следовал инструкциям здесь: Отображение GIF в приложении WP7 с Silverlight . пользователь дал отличную прогулку.

  1. что вам нужно сделать перед тем, как сделать то, что предложил этот пользователь, это загрузить исходный код из codeplex.

  2. , затем вам нужно загрузить библиотеку JPEG BitMiracle из http://bitmiracle.com/libjpeg/.

  3. , зайдите в каталог / src / ImageTools и откройте ImageTools.Phone.sln. добавьте проект ImageTools.IO.Jpeg.Phone к решению.

  4. когда вы создаете решение, оно будет жаловаться на то, что не найдет DLL-файл BitMiracle JPEG, продолжайте и ссылайтесь на эту DLL для проекта Jpeg. построить снова, и он должен работать.

1 Ответ

2 голосов
/ 09 февраля 2012

Сначала загрузите изображение (любое), используя Httprequest или Webclient, а затем преобразуйте в jpg или png из gif (если это gif) следующим образом.

 GifDecoder gd = new GifDecoder();
 ImageTools.ExtendedImage img = new ImageTools.ExtendedImage();
 gd.Decode(img, stream);              //stream means image stream
 PngEncoder png = new PngEncoder();
 png.Encode(img, isoFileStreamdownload);  //isoFileStreamdownload means stream, which is used to save image in image file like(image.png))

с использованием ImageTools.dll, ImageTools.IO.Gif.dll, ImageTools.IO.Png.dll (Инструменты изображения)

Я думаю, что это вам помогает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...