gpt4 book ai didi

java - 从 BufferedImages 编写动画 gif

转载 作者:行者123 更新时间:2023-11-30 09:46:46 24 4
gpt4 key购买 nike

我有一个程序可以加载 spritesheet,为工作表上的每个帧创建 BufferedImages,并将其写入动画 gif。使用 Elliot Kroo 在 Creating animated GIF with ImageIO? 上提供的类(class),我能够成功输出一个文件。但是,gif 动画不太正确。我提供的工作表是具有透明背景的 .png,因此每个后续帧都只是放在最后一帧的顶部,通过透明背景 (Example) 显示差异。这是使用 gif 编写器的代码:

ImageOutputStream output = new FileImageOutputStream(new File(savePath));
GifSequenceWriter writer = new GifSequenceWriter(output, data[0].getType(), delay, true);
for(BufferedImage bi:data)
{
writer.writeToSequence(bi);
}
writer.close();
output.close();

其中数据是作为 BufferedImage 的每个帧的数组(我也检查过,似乎不是问题所在)。这是 .gifs 或 Java ImageWriters 的限制吗?或者我可以在某处编辑设置以防止这种情况发生吗?如果不需要,我宁愿不放背景。

最佳答案

假设 dataBufferedImage 的数组,GifSequenceWriterimageType 参数对于从 .png 文件读取的数据,构造函数可能是 TYPE_INT_ARGB。我希望 transparentColorFlagtrue,但您必须凭经验确定 transparentColorIndex

graphicsControlExtensionNode.setAttribute("transparentColorFlag", "TRUE");
graphicsControlExtensionNode.setAttribute("transparentColorIndex", ???);

另见 answer .

关于java - 从 BufferedImages 编写动画 gif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6967809/

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