2010-05-17 10 views
23

मैं इसे छोटे और सरल रखेंगे से स्थिर GIFs बताएँ अलग;सी # एनिमेटेड लोगों

वहाँ एनिमेटेड लोगों से अलग स्थिर GIF छवियों को बताने का किसी भी तरह से है? मैं सी # का उपयोग कर रहा हूँ।

धन्यवाद

उत्तर

26

Here's an article about how to determine the number of frames in a GIF animation

Image i = Image.FromFile(Server.MapPath("AnimatedGIF.gif")); 

Imaging.FrameDimension FrameDimensions = 
    new Imaging.FrameDimension(i.FrameDimensionsList[0]); 

int frames = i.GetFrameCount(FrameDimensions); 

if (frames > 1) 
    Response.Write("Image is an animated GIF with " + frames + " frames"); 
else 
    Response.Write("Image is not an animated GIF."); 

और मैं तुम्हें सिर्फ तुलना कर सकते हैं के साथ 1.

+2

एक छोटे फ़ॉन्ट में +1 कट्टर लेख! क्या आप यहां कोड का एक स्निपेट पेस्ट कर सकते हैं और लेख से लिंक भी कर सकते हैं? ताकि यदि पृष्ठ या साइट हटा दी जाती है तो उत्तर खो नहीं जाता है। – amelvin

+0

@amelvin: अच्छा विचार। मुझे लगता है कि जेफ पहले से ही कर चुका है, अब =) @jeff atwood: परिवर्तनीय नाम बदलने के लिए प्रोप! –

+2

यहां कोड जोड़ने के लिए धन्यवाद, वेबसाइट अब उपलब्ध नहीं है। – flayn

1

Wikipedia एक स्थिर एक की तुलना में एक एनिमेटेड GIF के लेआउट में कुछ जानकारी है कि मान।

एक एनिमेटेड GIF फ़ाइल चित्र या फ्रेम के एक नंबर प्रत्येक का अपना GCE (ग्राफिक नियंत्रण एक्सटेंशन), ​​एक हैडर डिफ़ॉल्ट रूप से जिनकी सामग्री सभी तख्ते पर लागू होता है से पहले द्वारा वर्णित क्रमिक प्रदर्शित करने के लिए, शामिल हैं। शीर्षलेख के बाद डेटा निश्चित सूचकांक होने के बजाय स्ट्रीम-ओरिएंटेड होता है, इसलिए जीसीई की शुरुआत का स्थान जीसीई की पूर्व अवधि पर निर्भर करता है।

5

System.Drawing.ImageAnimator.CanAnimate .NET 1.1 बाद से उपलब्ध है।

MSDN से:

एक बूलियन मान यह बताते हैं कि निर्दिष्ट छवि समय आधारित फ़्रेम हैं देता है।

उदाहरण:

using (Image image = Image.FromFile("somefile.gif")) 
{ 
    if (ImageAnimator.CanAnimate(image)) 
    { 
     // GIF is animated 
    } 
    else 
    { 
     // GIF is not animated 
    } 
} 
संबंधित मुद्दे