private void generateGif(GifDescriptor descriptor, File dir) throws IOException { try (ImageOutputStream output = new FileImageOutputStream(new File(dir, descriptor.getName() + ".gif")); GifSequenceWriter writer = new GifSequenceWriter(output, IMAGE_TYPE_GIF, TIME_BETWEEN_FRAMES_MS, true)) { for (GifFrame gifFrame : descriptor.getFrames()) { BufferedImage layer = generateFrame(gifFrame); writer.writeToSequence(layer); } } }