Olá.
Estou com o seguinte problema, estou usando a classe ImageReader em conjunto com ImageWriter para fazer o redimensionamento de imagens, e uns tratamentos extras, entretanto, quando tento gravar um gif animado, tento usar o método canInsertImage do GIFImageWriter ele sempre me retorna false. Acredito que esteja faltando alguma configuração.
Segue a parte importante do código:
ImageWriter writer = writers.next();
ImageOutputStream ios = new FileImageOutputStream(thumb);
writer.setOutput(ios);
BufferedImage thumbImage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics2D = thumbImage.createGraphics();
graphics2D.drawImage(reader.read(cont), 0, 0, width, height, null);
graphics2D.dispose();
writer.write(thumbImage);
for(cont = 1;cont<contImages&&writer.canInsertImage(cont);cont++){
graphics2D.drawImage(reader.read(cont), 0, 0, width, height, null);
graphics2D.dispose();
IIOImage thumbImage_IIOImage = new IIOImage(thumbImage, null, null);
writer.writeInsert(-1, thumbImage_IIOImage, null);
}
O código está bem resumido, mas a parte que poderia estar causando erro provavelmente está aí.
Se alguém tiver alguma ideia do que está faltando para habilitar a gravação de outras imagens como frames desse gif eu agradeço.