2012-03-01 17 views
7

मैं नेटवर्क से एक जीआईएफ छवि प्राप्त करना चाहता हूं, लेकिन मुझे पता चला कि अगर मैं पूरी जीआईएफ छवि डाउनलोड करता हूं, तो यह बहुत सारे नेटवर्क यातायात का कारण बनता है।अन्य सभी फ्रेमों को डाउनलोड किए बिना एक जीआईएफ छवि का पहला फ्रेम प्राप्त करना

क्या मुझे अन्य सभी फ्रेम डाउनलोड किए बिना केवल एक जीआईएफ छवि का पहला फ्रेम मिल सकता है?

+0

मुझे एक पूरी तरह से वैध प्रश्न को कम करने के कारण को जानना अच्छा लगेगा। –

+0

इस लिंक से लाइब्रेरी का उपयोग करना: https://github.com/dragon66/icafe, यह एक लाइन कॉल जितना आसान होगा: ImageIO.getReader (ImageType.GIF) .getFrameAsBufferedImage (इनपुटस्ट्रीम है) या ImageIO.getReader (ImageType। जीआईएफ) .read (इनपुटस्ट्रीम है)। रिटर्न प्रकार जावा बुफर्ड इमेज होगा। – dragon66

उत्तर

0

ठीक है, मैं करने के लिए तैयार उपयोग समाधान नहीं मिला है, लेकिन आप इस तरह से (यह कुछ "निम्न स्तर के" चाल के लिए नेतृत्व करेंगे) कर सकते हैं:

wiki about GIFs के बाद, ऐनिमेटेड gif फ़ाइलों कर सकते हैं फ्रेम में विभाजित किया जाना चाहिए, और फ्रेम के अंत को आसानी से पहचाना जा सकता है। इसलिए, आपको जीआईएफ हेडर, स्क्रीन जानकारी, एनीमेशन के बारे में जानकारी बफर में पढ़ने, पहले फ्रेम डाउनलोड करने और जीआईएफ जैसी जानकारी संलग्न करने की आवश्यकता होगी ("3 बी" विकी आलेख के बाद)। और, यदि आप इस डेटा को अलग-अलग बुफे में कॉपी करते हैं, तो आप पहले फ्रेम को फिर से डाउनलोड किए बिना पूरी फ़ाइल डाउनलोड जारी रखने में सक्षम होंगे।

इसके अलावा आप स्थिर फ्रेम में पहले फ्रेम को प्रारूपित करने के लिए हेडर जानकारी संपादित कर सकते हैं।

+0

बहुत बहुत धन्यवाद। मैं इस पर काम कर रहा हूँ। – ctsu

+0

इस पर कोई अद्यतन नहीं है –

संबंधित मुद्दे

 संबंधित मुद्दे