gpt4 book ai didi

java - 使用 ImageIO 创建动画 GIF?

转载 作者:IT老高 更新时间:2023-10-28 20:34:30 29 4
gpt4 key购买 nike

是否有人设法说服 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);

这似乎几乎可以工作,但是:

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

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

最佳答案

我遇到了这个问题,并决定尝试一下;创建一个可用的类(感谢 ax)花费了少量但不平凡的量——所以我想我可能会分享以下代码:here是一个小类,用于从许多其他图像创建动画 gif 图像。 Archived version

关于java - 使用 ImageIO 创建动画 GIF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/777947/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com