sto utilizzando Graphics2D in java per ridimensionare le immagini, funziona perfettamente con jpg, png e altri formati. il mio problema sono le immagini GIF animate, dopo il ridimensionamento l'animazione è sparita!ridimensionamento delle GIF animate mantenendo l'animazione utilizzando java
Ecco il metodo sto usando:
private BufferedImage doResize(int newWidth, int newHeight, double scaleX,
double scaleY, BufferedImage source) {
GraphicsConfiguration gc = getDefaultConfiguration();
BufferedImage result = gc.createCompatibleImage(newWidth, newHeight, source.getColorModel().getTransparency());
Graphics2D g2d = null;
try {
g2d = result.createGraphics();
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.scale(scaleX, scaleY);
g2d.drawImage(source, 0, 0, null);
} finally {
if (g2d != null) {
g2d.dispose();
}
}
return result;
}
così, qualche indizio Come posso mantenere sul gif animate dopo ridimensionamento? Grazie.
impressionante, grazie mille. Completamente risolto e posso ridimensionare le gif e mantenere l'animazione ora. Solo nota è necessario moltiplicare i fotogrammi [0] .getDelay() per 10 perché all'interno di GifSequenceWriter divide per 10 (per regolare da millisecondi) – Erich
Funziona bene ma richiede circa 200 MB per gif di dimensioni 1 MB e 222 fotogrammi. c'è qualche motivo per ridurre l'utilizzo della memoria ?? – Vipul