2008-09-09 12 views
11

क्या यह देखने का कोई अच्छा तरीका है कि छवि को कौन सा स्वरूप है, पूरी फ़ाइल को स्मृति में पढ़ने के बिना?क्या कोई फ़ाइल है कि फ़ाइल को कौन सा छवि प्रारूप है, पूरी फाइल पढ़ने के बिना?

स्पष्ट रूप से यह स्वरूप से प्रारूप में भिन्न होगा (मुझे विशेष रूप से टीआईएफएफ फाइलों में दिलचस्पी है) लेकिन यह निर्धारित करने के लिए कि किस प्रकार की छवि प्रारूप फ़ाइल को पूरी फाइल के माध्यम से पढ़ा जा रहा है, यह निर्धारित करने के लिए किस प्रकार की प्रक्रिया उपयोगी होगी?

बोनस: यदि छवि बेस 64-एन्कोडेड स्ट्रिंग है तो क्या होगा? इसे डीकोड करने से पहले इसे अनुमानित करने का कोई विश्वसनीय तरीका?

उत्तर

17

अधिकांश छवि फ़ाइल प्रारूपों में शुरुआत में अद्वितीय बाइट्स हैं। यूनिक्स file कमांड फ़ाइल की शुरुआत को देखने के लिए देखता है कि इसमें किस प्रकार का डेटा है। विकिपीडिया आलेख को Magic numbers in files और magicdb.org पर देखें।

+2

टर्गा के अलावा, जिसमें अंत में जादू संख्याएं हैं, और रॉ के कुछ स्वाद जो टीआईएफएफ से पूरी तरह से अलग नहीं हैं, सिवाय इसके कि वे डीकोड नहीं करते हैं (या इसके विपरीत)। – plinth

0

* 0x* nix कमांड लाइन पर या फ़ाइल के आरंभिक बाइट्स को पढ़ना। अधिकांश फाइलें पहले कुछ बाइट्स में एक अद्वितीय शीर्षलेख के साथ आती हैं। उदाहरण के लिए, टीआईएफएफ का हेडर ऐसा कुछ दिखता है:

0x00000000: 4949 2a00 0800 0000
टीआईएफएफ फ़ाइल प्रारूप पर अधिक जानकारी के लिए विशेष रूप से यदि आप जानना चाहते हैं कि उन बाइट्स के लिए क्या खड़ा है, तो here पर जाएं। या तो द्वितीय या एम एम (इंटेल बाइट आदेश या Motorolla) के साथ शुरू हो जाएगा

http://www.wotsit.org

+2

यिक्स "कुछ ऐसा" खतरनाक है। दो वैध टिफ़ हेडर हैं: 49 49 2 ए 00 या 4 डी 4 डी 00 2 ए। 49 9 प्रारूप में अधिकांश फाइलों के माध्यम से इंटेल बाइट ऑर्डरिंग (थोड़ा एंडियन) का उपयोग किया जाता है, 4 डी 4 डी मोटोरोला बाइट (बड़ा एंडियन) का उपयोग करता है जिसका अर्थ है कि 2 ए और 00 इंटेल से उलट जाते हैं। – plinth

0

एक फ़ाइल स्वरूपों के व्यापक साइट पर उपलब्ध है।
टीआईएफएफ 6 विनिर्देश here डाउनलोड किया जा सकता है और

4

का पालन करना बहुत मुश्किल नहीं है। जैसा कि दूसरों ने उल्लेख किया है, अधिकांश छवियां किसी प्रकार के 'जादू' से शुरू होती हैं, जो हमेशा किसी भी प्रकार के बेस 64 डेटा में अनुवाद करेगी। अनुसरण कर रहे हैं कुछ उदाहरण:

एक बिटमैप Qk3

एक JPEG के साथ शुरू होगा शुरू कर देंगे साथ /9j/

एक GIF (यही कारण है कि दूसरे चार के रूप में एक शून्य है) R0l के साथ शुरू होगा।

और इसी तरह। अलग-अलग छवि प्रकारों को लेना और यह पता लगाना मुश्किल नहीं है कि वे क्या एन्कोड करते हैं। बस सावधान रहें, क्योंकि कुछ में जादू के एक से अधिक टुकड़े हैं, इसलिए आपको अपने बी 64 'अनुवाद कोड' में उनके लिए खाते की आवश्यकता है।

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

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