का उपयोग करके इसे एनीमेशन रखने के दौरान एनिमेटेड जीआईएफ का आकार बदल रहा है, मैं जावा में ग्राफिक्स 2 डी का उपयोग छवियों का आकार बदलने के लिए कर रहा हूं, यह जेपीजी, पीएनजी और अन्य प्रारूपों के साथ सही काम करता है। एनीमेशन फिर से आकार देने के बाद, मेरी समस्या एनिमेटेड जीआईएफ छवियां है!जावा
यहाँहै विधि का उपयोग कर रहा हूँ:
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;
}
हां, तो किसी भी सुराग मैं कैसे ऐनिमेटेड gif पर रख सकते हैं फिर से आकार देने के बाद? धन्यवाद।
बहुत बढ़िया था, इतना धन्यवाद। पूरी तरह से हल किया गया है और मैं gifs का आकार बदल सकते हैं और अब एनीमेशन रख सकते हैं। केवल ध्यान दें कि आपको फ्रेम [0] .getDelay() 10 से गुणा करना चाहिए क्योंकि GIFSequenceWriter के अंदर यह 10 (मिलीसेकंड से समायोजित करने के लिए) द्वारा विभाजित होता है – Erich
यह अच्छी तरह से काम करता है लेकिन आकार 1 एमबी और 222 फ्रेम के gif के लिए लगभग 200 एमबी लेता है। स्मृति उपयोग को कम करने के लिए कोई कारण है ?? – Vipul