У меня есть программа, которая загружает таблицу спрайтов, создает BufferedImages каждого кадра на листе и записывает его в анимированный GIF.Используя класс, предоставленный Эллиотом Кроо для Создание анимированного GIF с ImageIO? , я смог успешно вывести файл.Тем не менее, GIF-анимация не совсем правильно.Предоставленный мною лист был .png с прозрачным фоном, поэтому каждый последующий кадр просто помещается поверх последних кадров, а различия различаются на прозрачном фоне ( Пример ).Вот код, который использует gif Writer:
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?Или я могу где-нибудь отредактировать настройку, чтобы предотвратить это?Я бы предпочел не ставить фон, если мне не нужно.