Windows phone 7 如何在windows phone 7中显示gif图像?

Windows phone 7 如何在windows phone 7中显示gif图像?,windows-phone-7,Windows Phone 7,我正在尝试从facebook加载图像。如果用户设置了配置文件图片,则该图片是jpg,但是,如果用户未设置配置文件图片,则该图片是gif格式的存根图像。我知道wp7不支持显示gif图像(开箱即用)。有没有办法检测最终图片是否为gif 例如,我制作的位图图像如下所示: BitmapImage img = new BitmapImage(new Uri("https://graph.facebook.com/userid1/picture")) 对于此uri,用户没有配置文件图片。因此,我被带到一个

我正在尝试从facebook加载图像。如果用户设置了配置文件图片,则该图片是jpg,但是,如果用户未设置配置文件图片,则该图片是gif格式的存根图像。我知道wp7不支持显示gif图像(开箱即用)。有没有办法检测最终图片是否为gif

例如,我制作的位图图像如下所示:

BitmapImage img = new BitmapImage(new Uri("https://graph.facebook.com/userid1/picture"))
对于此uri,用户没有配置文件图片。因此,我被带到一个存根gif图像在

如果用户确实有一个图像,那么我请求它如下

BitmapImage img = new BitmapImage(new Uri("https://graph.facebook.com/userid2/picture"))
对于上面的url,我会看到如下url:

我的问题是,一旦我得到BitmapImage对象img,我能确定这是JPG还是GIF吗?如果它是gif,我可以把它转换成JPG吗

我看了一些相关的问题,但是讨论的API异步加载了图像,这不是我现在想要的。此外,文件也很差

感谢您的帮助

没关系,我按照这里的说明做了:。用户做了一次很好的演练

  • 在执行此用户建议的操作之前,您需要做的是从codeplex下载源代码

  • 然后您需要从下载BitMiracle的JPEG库

  • 继续,进入/src/ImageTools目录并打开ImageTools.Phone.sln。将ImageTools.IO.Jpeg.Phone项目添加到解决方案中

  • 当您构建解决方案时,它会抱怨找不到BitMiracle的JPEG dll,请继续为JPEG项目引用该dll。再建一次,它应该会起作用

  • 首先使用Httprequest或Webclient下载图像(任意),然后按以下方式从gif(如果是gif)转换为jpg或png

     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(图像工具)


    我认为它对您有帮助

    顺便说一句,我确实尝试过这个api。然而,wp7 DLL没有JPG编码器,因此控件可以显示GIF,但不能显示JPG。真是太痛苦了。wp7应该知道GIF非常受欢迎并且仍然存在。另一方面,facebook应该知道一致性(所有JPG或所有GIF)。我当然希望wp7能够支持GIF,并且facebook能够与他们的图片更加一致。我想我还没有足够的分数来支持这一点,克里斯:(事实上,我先试过了。