मैं gif फ्रेम संख्या प्राप्त करने के लिए किसी तरह की विधि देख रहा हूं। मैं google, stackoverflow और किसी भी बाहरी साइट पर देख रहा हूं और मुझे केवल बकवास मिल रहा है !! किसी को पता है कि यह कैसे करें? मुझे केवल gif फ्रेम की सरल संख्या की आवश्यकता है।पायथन, मैं gif फ्रेम कैसे प्राप्त कर सकता हूं
उत्तर
फ्रेम को लोड/हेरफेर करने के लिए आप किस विधि का उपयोग कर रहे हैं? क्या आप पीआईएल का उपयोग कर रहे हैं? यदि नहीं, तो मैं इसे जांचने का सुझाव देता हूं: Python Imaging Library और विशेष रूप से the PIL gif page।
अब, मान लीजिए कि आप जीआईएफ में पढ़ने के लिए पीआईएल का उपयोग कर रहे हैं, यह निर्धारित करने के लिए एक बहुत ही साधारण बात है कि आप कौन सी फ्रेम देख रहे हैं। एक विशिष्ट फ्रेम पर जाएं और बताएं आप जिस फ्रेम को देख रहे हैं उसे वापस कर देगा।
import Image
im = Image.open("animation.gif")
# To iterate through the entire gif
try:
while 1:
im.seek(im.tell()+1)
# do something to im
except EOFError:
pass # end of sequence
अन्यथा, मेरा मानना है कि आप केवल जब तक एक अपवाद (EOFError) उठाया है की मांग की gif में फ्रेम की संख्या पा सकते हैं।
बस फ़ाइल को पार्स, gif बहुत सरल कर रहे हैं:
class GIFError(Exception): pass
def get_gif_num_frames(filename):
frames = 0
with open(filename, 'rb') as f:
if f.read(6) not in ('GIF87a', 'GIF89a'):
raise GIFError('not a valid GIF file')
f.seek(4, 1)
def skip_color_table(flags):
if flags & 0x80: f.seek(3 << ((flags & 7) + 1), 1)
flags = ord(f.read(1))
f.seek(2, 1)
skip_color_table(flags)
while True:
block = f.read(1)
if block == ';': break
if block == '!': f.seek(1, 1)
elif block == ',':
frames += 1
f.seek(8, 1)
skip_color_table(ord(f.read(1)))
f.seek(1, 1)
else: raise GIFError('unknown block type')
while True:
l = ord(f.read(1))
if not l: break
f.seek(l, 1)
return frames
मुझे लगता है कि इसे पीआईएल की आवश्यकता है, मैंने 44 फ्रेम 'gif' फ़ाइल पर इसका उपयोग करने की कोशिश की, और यह मेरे पास 0 लौटा ... (मैंने पूर्वावलोकन का उपयोग करके फ्रेम की गणना की, लेकिन मुझे कुछ कोड चाहिए 2500 से अधिक छवियों पर जानकारी) ... – Zizouz212
@ ज़ीज़ौज़ 212: यह मेरे लिए [small_globe.gif' परीक्षण फ़ाइल के साथ काम करता था जिसका उपयोग मैंने [मेरे उत्तर] (http://stackoverflow.com/a/28549748/355230) में किया था तुम्हारा सवाल कृपया अपनी 44 फ्रेम gif छवि फ़ाइल को कहीं भी अपलोड करें (जैसे आपके किसी एक प्रश्न में), और फिर मुझे बताएं ताकि मैं इसे डाउनलोड कर सकूं और देख सकूं कि क्या समस्या का कारण बन रहा है या नहीं। – martineau
- 1. मैं बिना फ्रेम के जावाडॉक कैसे उत्पन्न कर सकता हूं?
- 2. मैं प्रतिनिधि कैसे प्राप्त कर सकता हूं?
- 3. जावास्क्रिप्ट का उपयोग कर फ़्रेमसेट फ्रेम के भीतर से मैं तत्व कैसे प्राप्त कर सकता हूं?
- 4. मैं ImageMagick के साथ gif छवियों के आकार को कैसे संकुचित कर सकता हूं?
- 5. मैं ColdFusion का उपयोग कर BAIF64 एन्कोडेड HTML को GIF में कैसे परिवर्तित कर सकता हूं?
- 6. पायथन में, मैं वर्तमान फ्रेम कैसे प्राप्त करूं?
- 7. मैं हिम तेंदुए में पायथन के साथ iSight फ्रेम कैप्चर कैसे कर सकता हूं?
- 8. मैं AppEngine में बेस यूआरआई कैसे प्राप्त कर सकता हूं?
- 9. मैं मानक पायथन कंसोल में बीपीवाई कैसे प्राप्त कर सकता हूं? बीपीवाई ब्लेंडर-पायथन -0
- 10. मैं .gif छवि में प्रत्येक पिक्सेल के माध्यम से कैसे पुन: प्रयास कर सकता हूं?
- 11. मैं पायथन में यादृच्छिक संख्या कैसे उत्पन्न कर सकता हूं?
- 12. मैं पायथन में समीकरण कैसे हल कर सकता हूं?
- 13. पायथन: मैं सभी चर कैसे आयात कर सकता हूं?
- 14. मैं कीबोर्ड इंटरप्ट को ओवरराइड कैसे कर सकता हूं? (पायथन)
- 15. मैं पायथन में सिस्टम जानकारी कैसे वापस कर सकता हूं?
- 16. मैं वीबीए से पायथन प्रोग्राम कैसे कॉल कर सकता हूं?
- 17. मैं पायथन से एरलांग कैसे कॉल कर सकता हूं?
- 18. मैं LibUUID कैसे प्राप्त/उपयोग कर सकता हूं?
- 19. मैं .NET में स्थानीय आईपी कैसे प्राप्त कर सकता हूं?
- 20. मैं indexPath द्वारा एक uitableViewCell कैसे प्राप्त कर सकता हूं?
- 21. मैं वेबपृष्ठ की सार्वजनिक कुंजी कैसे प्राप्त कर सकता हूं?
- 22. मैं यूनिकोड चरित्र कोड कैसे प्राप्त कर सकता हूं?
- 23. मैं सेवा से आउटपुटडिबगस्ट्रिंग कैसे प्राप्त कर सकता हूं?
- 24. मैं निष्पादन असेंबली संस्करण कैसे प्राप्त कर सकता हूं?
- 25. मैं टैग से ऑब्जेक्ट कैसे प्राप्त कर सकता हूं?
- 26. मैं डब्ल्यूपीएफ में डीपीआई कैसे प्राप्त कर सकता हूं?
- 27. मैं डिफ़ॉल्ट विभाजक कैसे प्राप्त कर सकता हूं?
- 28. मैं NSURLResponse निकाय कैसे प्राप्त कर सकता हूं?
- 29. मैं किसी विधि का संदर्भ कैसे प्राप्त कर सकता हूं?
- 30. मैं स्ट्रिंग/बफर का अक्षर कैसे प्राप्त कर सकता हूं?
मैं में "से जनहित याचिका आयात छवि" बदलने के लिए "आयात छवि" यह काम करने के लिए (मैं मैं हाल ही में एक तकिया संस्करण है अनुमान लगा रहा हूँ था स्थापित) – sellibitze