相关疑难解决方法(0)

使用ImageIO创建动画GIF?

有没有人设法说服ImageIO写一个动画GIF,特别是设置正确的元数据?我的第一次尝试大致如下(其中b1和b2是BufferedImages):

ImageTypeSpecifier spec = new ImageTypeSpecifier(b1);
ImageWriter wr = ImageIO.getImageWriters(spec, "GIF").next();
wr.setOutput(ImageIO.createImageOutputStream(new File("C:\\Flashing.gif")));
ImageWriteParam param = wr.getDefaultWriteParam();
IIOMetadata meta = wr.getDefaultImageMetadata(spec, param);
wr.prepareWriteSequence(meta);
wr.writeToSequence(new IIOImage(b1, null, null), param);
wr.writeToSequence(new IIOImage(b2, null, null), param);
Run Code Online (Sandbox Code Playgroud)

这似乎几乎可行,但是:

  • 我显然需要以某种方式设置"适当的"元数据来设置图像之间的时间并理想地使它们循环(我天真地希望默认会做一些明智的事情,但是嘿......)
  • 默认情况下,它所写的任何元数据显然不是很正确:GIMP在加载文件时会给出一些错误消息,尽管在Firefox的测试网页中嵌入图像确实可以非常快速地连续显示这两个图像.接近我想要的......

如果有人从ImageIO编写动画GIF,可以分享工作代码片段或如何解决上述问题,我们将不胜感激!

java animated-gif javax.imageio

23
推荐指数
1
解决办法
2万
查看次数

如何使用ImageWriter和ImageIO在Java中编码动画GIF?

我到处都是,但是似乎找不到任何容易理解的解释。(我发现其他Java用户编写的类和方法可以做到这一点,但我希望自己编写。)

java image gif animated-gif javax.imageio

1
推荐指数
1
解决办法
2868
查看次数

标签 统计

animated-gif ×2

java ×2

javax.imageio ×2

gif ×1

image ×1