使用 Silverlight 在 WP7 应用程序中显示 GIF

发布于 2024-10-01 22:22:17 字数 175 浏览 4 评论 0原文

我想在我的 WP7 应用程序中显示 gif。 有什么方法可以实现这一点吗?

我已经尝试过这个 http://imagetools.codeplex.com/ 但无法使其与 WP7 一起使用。

预先感谢您的任何帮助

I would like to display gif in my WP7 application.
Is there some way to achieve this ?

I've tryed this one http://imagetools.codeplex.com/ but can't make it working with WP7.

Thanks in advance for any help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

漫雪独思 2024-10-08 22:22:17

实际上,
它正在工作,但缺少一些文档。

经过一些麻烦,这里是如何使用它:

  • 参考ImageTools
  • 参考ImageTools.Controls
  • 参考ImageTools.IO.Gif

在xaml中添加命名空间:

xmlns:imagetools="clr-namespace:ImageTools.Controls;assembly=ImageTools.Controls" 

和资源:

<phone:PhoneApplicationPage.Resources>
    <imagetools:ImageConverter x:Key="ImageConverter" />
</phone:PhoneApplicationPage.Resources>

然后将控件与转换器一起使用:

<imagetools:AnimatedImage Source="{Binding ImageSource, Converter={StaticResource ImageConverter}}" />

您的ImageSource应该是一个Uri,例如:

ImageSource = new Uri("http://mysite/my.gif", UriKind.Absolute);

Don'不要忘记添加解码:

ImageTools.IO.Decoders.AddDecoder<GifDecoder>();

In fact,
it's working, but it lacks some documentation.

After some troubles, here's how to use it :

  • reference ImageTools
  • reference ImageTools.Controls
  • reference ImageTools.IO.Gif

Add namespace in xaml :

xmlns:imagetools="clr-namespace:ImageTools.Controls;assembly=ImageTools.Controls" 

And resources :

<phone:PhoneApplicationPage.Resources>
    <imagetools:ImageConverter x:Key="ImageConverter" />
</phone:PhoneApplicationPage.Resources>

Then use the control with the converter :

<imagetools:AnimatedImage Source="{Binding ImageSource, Converter={StaticResource ImageConverter}}" />

Your ImageSource should be an Uri, for example :

ImageSource = new Uri("http://mysite/my.gif", UriKind.Absolute);

Don't forget to add decoded :

ImageTools.IO.Decoders.AddDecoder<GifDecoder>();
如果没有 2024-10-08 22:22:17

查看 Jamie Rodriguez 的关于在 WP7 中使用 GIF 的帖子。他使用 CodePlex 的 ImageTools 项目。

http ://blogs.msdn.com/b/jaimer/archive/2010/11/23/working-with-gif-images-in-windows-phone.aspx

Check out Jamie Rodriguez's post here on using GIFs with WP7. He uses the ImageTools project from CodePlex.

http://blogs.msdn.com/b/jaimer/archive/2010/11/23/working-with-gif-images-in-windows-phone.aspx

咆哮 2024-10-08 22:22:17

我努力让接受的答案发挥作用。以下解决方案适用于我显示静态 gif。

    public ImageResponse(string imageUrl)
    {
        InitializeComponent();

        ImageTools.IO.Decoders.AddDecoder<GifDecoder>();

        var imageResponse = new ExtendedImage();
        imageResponse.UriSource = new Uri(imageUrl);

        imageResponse.LoadingCompleted += this.ImageResponseLoadingCompleted;
    }

    private void ImageResponseLoadingCompleted(object sender, EventArgs e)
    {
        var imageResponse = (ExtendedImage)sender;

        Classes.Util.UiThread.Invoke(() =>
            {
                this.ImageResponse.Source = imageResponse.ToBitmap();
            });
    }

Classes.Util.UiThread 是我用来调用 UI 线程的辅助类

this.ImageResponse 是一个标准图像控件

I struggled to get the accepted answer working. The following solution worked for me to display a static gif.

    public ImageResponse(string imageUrl)
    {
        InitializeComponent();

        ImageTools.IO.Decoders.AddDecoder<GifDecoder>();

        var imageResponse = new ExtendedImage();
        imageResponse.UriSource = new Uri(imageUrl);

        imageResponse.LoadingCompleted += this.ImageResponseLoadingCompleted;
    }

    private void ImageResponseLoadingCompleted(object sender, EventArgs e)
    {
        var imageResponse = (ExtendedImage)sender;

        Classes.Util.UiThread.Invoke(() =>
            {
                this.ImageResponse.Source = imageResponse.ToBitmap();
            });
    }

Classes.Util.UiThread is a helper class I use to call the UI Thread

this.ImageResponse is a standard image control

本宫微胖 2024-10-08 22:22:17

是GIF动画吗?如果没有,我会尝试将 GIF 转换为其他受支持的文件格式,然后再在您的应用程序中使用它。

Is it an animated GIF? If not, I would try converting the GIF to another supported file format before using it in your app.

半衾梦 2024-10-08 22:22:17

WP7 Silverlight 支持 JPG/PNG。

WP7 Silverlight supports JPG/PNG.

行至春深 2024-10-08 22:22:17

根据 http://msdn.microsoft.com/en- us/library/ff462087(VS.92).aspx Silverlight 图像控件不支持 GIF 文件。

通过使用 ImageTools,您可以在设备上即时将 GIF 文件转换为其他文件。如果您使用的是您可以控制的 gif 文件(即您将它们捆绑在 XAP 中或者它们来自您的网络服务器。),您应该使用这些文件的转换版本。

这意味着应用程序必须做的事情更少。
连锁反应是:
1. 您将需要编写更少的代码。
2. 该应用程序将需要做更少的工作,因此性能会稍微好一些。

当然,这不包括 GIF 动画。对于这些,您需要使用不同的方法。

As per http://msdn.microsoft.com/en-us/library/ff462087(VS.92).aspx the Silverlight image control does not support GIF files.

By using ImageTools you are converting the GIF file to something else on the fly on the device. If you are using gif files that you have control of (i.e. You are bundling them in the XAP or they are coming from your webserver.) you should use converted versions of these files.

This will mean that the app has to do less.
The knock on effect is that:
1. You will have to write less code.
2. The app will have to do less work and so will perform slightly better.

Of course, this doesn't cover animated GIFs. For these you'll need to use a different approach.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文