ImageView:动画 gif 预览
Posted
技术标签:
【中文标题】ImageView:动画 gif 预览【英文标题】:ImageView: animated gif preview 【发布时间】: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
中显示图像。
【问题讨论】:
【参考方案1】:GifDecoder
不起作用有两个原因。
第一个确实是我的错误,因为传递给 read 方法的 String 应该是一个 URI:
File f = new File(filename);
d.read(f.toURI().toString());
第二个问题在于GifDecoder
:为了检查输入URI,它被转换为小写,然后使用转换后的字符串在InputStream
中创建。这适用于不区分大小写的操作系统(如 Windows),但不适用于基于 NIX 的系统。因此,我不得不解决这个问题,现在它正在工作。
【讨论】:
以上是关于ImageView:动画 gif 预览的主要内容,如果未能解决你的问题,请参考以下文章