【问题标题】:ImageView: animated gif previewImageView:动画 gif 预览
【发布时间】:2016-07-13 16:25:57
【问题描述】:

我正在整理一个显示图像预览的图片库。对于大多数图像,这没有问题,只有当图像是动画 gif 时,图像也是动画的,在这种情况下,这不是必需的。 我想要为动画 gif 做的是只显示动画的一帧。

在寻找解决方案时,我遇到了this

GifDecoder d = new GifDecoder();
d.read( filename);
WritableImage wimg = null;
Image img = SwingFXUtils.toFXImage(d.getFrame(0), wimg);

但首先,这似乎开销太大,并且由于d.getFrame(0) 返回null 的事实,到目前为止的快速测试以NullPointerException 结束。

我在想必须有一种更简单的方法,例如 Image 上的某些属性以避免为图像设置动画,或者作为一种替代方法,不在 ImageView 中显示图像。

【问题讨论】:

    标签: javafx gif


    【解决方案1】:

    GifDecoder 不起作用有两个原因。

    第一个确实是我的错误,因为传递给 read 方法的 String 应该是一个 URI:

    File f = new File(filename);
    d.read(f.toURI().toString());
    

    第二个问题在于GifDecoder:为了检查输入URI,它被转换为小写,然后使用转换后的字符串在InputStream 中创建。这适用于不区分大小写的操作系统(如 Windows),但不适用于基于 NIX 的系统。因此,我不得不解决这个问题,现在它正在工作。

    【讨论】:

      猜你喜欢
      • 2023-03-20
      • 2014-02-19
      • 2017-11-10
      • 1970-01-01
      • 2022-11-11
      • 2012-07-10
      • 1970-01-01
      • 2015-12-18
      • 1970-01-01
      相关资源
      最近更新 更多