ImageView:动画gif预览

时间:2016-03-25 21:03:36

标签: javafx gif

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

在搜索解决方案时,我遇到了this

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

但首先,由于NullPointerException返回d.getFrame(0)这一事实导致开销过多,目前为止的快速测试结果为null

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

1 个答案:

答案 0 :(得分:0)

GifDecoder无效后有两个原因。

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

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

第二个问题在于GifDecoder:要检查输入URI,它将转换为小写,然后使用转换后的String在InputStream中创建。这适用于不区分大小写的操作系统(如Windows),但不适用于基于NIX的系统。因此,我必须解决这个问题,现在它正在发挥作用。