पोर्टेबल ग्रेमैप (.pgm)

Netpbm मानक

पोर्टेबल ग्रेमैप प्रारूप (PGM) नेटपबम परिवार का ग्रेस्केल इमेज विनिर्देश है, जिसका व्यापक रूप से कंप्यूटर विज़न, रोबोटिक्स, ऑप्टिकल निरीक्षण और डिजिटल इमेज प्रोसेसिंग एल्गोरिदम में उपयोग किया जाता है।

इंस्पेक्ट और मेटाडेटा

ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके PGM फ़ाइलों की पहचान करते हैं:

फ़ाइलें यहाँ चुनें या छोड़ें

100% प्राइवेट इन-ब्राउज़र कन्वर्शन - फ़ाइलें कभी आपका डिवाइस नहीं छोड़तीं

या पेस्ट करें Ctrl+V
शून्य-नेटवर्क-ट्रांसमिशन गोपनीयता गारंटी: बाहरी सर्वर पर 0 बाइट अपलोड किए गए। सारी प्रोसेसिंग आपके ब्राउज़र सैन्डबॉक्स में स्थानीय रूप से हुई।

बाइट-स्तरीय हेडर हस्ताक्षर (मैजिक बाइट्स)

ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके PGM फ़ाइलों की पहचान करते हैं:

HEX हस्ताक्षर (ऑफ़सेट 0):

50 32 / 50 35

ASCII निरूपण: P2 / P5

मानकीकरण: Netpbm Library Standard

तकनीकी विनिर्देश

कंटेनर आर्किटेक्चरASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream
कंप्रेशनUncompressed raw binary bytes or human-readable ASCII text numbers
बाइट एंडियानेसBig-Endian (for 16-bit binary samples in P5 mode)
कलर स्पेसLinear Grayscale or sRGB Grayscale
चैनल और संरचना1 channel grayscale (8-bit or 16-bit precision)
अधिकतम आयामPractically unlimited (supports arbitrary 64-bit coordinate space)
पारदर्शिता (Transparency)None
स्ट्रीमिंग और प्रोग्रेसिवSequential row-by-row streaming playback

तकनीकी तुलना मैट्रिक्स: PGM बनाम प्रतियोगी

तकनीकी विशेषताPGM (वर्तमान)PBMPPMPNG
रंग मोड (Color Mode)ग्रेस्केल (8-बिट / 16-बिट)1-bit MonochromeRGB ट्रू कलर (24-बिट / 48-बिट)ग्रेस्केल, RGB, RGBA
नेटपबम सिबलिंग (Netpbm Sibling)PGM (Portable Graymap)PBM (Portable Bitmap)PPM (Portable Pixmap)नॉन-नेटpbm W3C मानक
मैजिक बाइट्स (Magic Bytes)P2 (ASCII) / P5 (बाइनरी)P1 (ASCII) / P4 (बाइनरी)P3 (ASCII) / P6 (बाइनरी)‰PNG....
संपीड़न (Compression)असम्पीडितअसम्पीडितअसम्पीडितलॉसलेस डिफ्लेट

सामान्य करप्शन मोड और हेक्स रिकवरी गाइड

इमेज उल्टी या पूरी तरह से सफेद प्रदर्शित होती है।

मूल कारण: हेडर में बेमेल 'maxval' पैरामीटर (उदा. maxval 255 के बजाय 1 के रूप में घोषित)।

रिकवरी: maxval हेडर लाइन को सुधारें या File2File Netpbm कन्वर्टर के साथ ट्रांसकोड करें।

सुरक्षा विश्लेषण और पार्सर अटैक वेक्टर्स

PGM डिकोडर्स को सावधानीपूर्वक यह सत्यापित करना चाहिए कि बफर ओवररन को रोकने के लिए पार्स किए गए पिक्सेल गिनती घोषित आयामों से मेल खाते हैं।

ज्ञात अटैक वेक्टर्स

  • चौड़ाई * ऊँचाई * (maxval > 255 ? 2 : 1) बफर आवंटन के दौरान पूर्णांक ओवरफ़्लो।
  • विकृत ASCII नंबर टोकन पढ़ते समय बफर ओवर-रीड।
  • गढ़े हुए हेडर आयामों द्वारा शुरू किए गए बड़े पैमाने पर मेमोरी आवंटन के माध्यम से सेवा से इनकार।

सुरक्षात्मक सर्वोत्तम प्रथाएँ:

ऐतिहासिक मूल और मील के पत्थर

2000वैज्ञानिक इमेजिंग के लिए बाइनरी P5 मोड में 16-बिट गहराई (65535 तक मैक्सवल) मानकीकृत।
1993मानक मध्यवर्ती ग्रेस्केल प्रारूप के रूप में नेटपबम टूलकिट में शामिल किया गया।
1989जेफ पोस्कांज़र ने पूर्ण 256-स्तर ग्रेस्केल समर्थन के साथ PBM के पूरक के रूप में PGM बनाया।

मुख्य लाभ और खूबियाँ

  • शून्य जटिलता: बाहरी पुस्तकालयों के बिना C, Python या WebAssembly में पार्स और लिखना बेहद आसान है।
  • मूल 16-बिट ग्रेस्केल समर्थन इसे हाइटमैप, गहराई मानचित्र और थर्मल इमेजिंग के लिए आदर्श बनाता है।
  • ASCII मोड (P2) मानक टेक्स्ट संपादकों में कच्चे पिक्सेल मानों के प्रत्यक्ष निरीक्षण और हेरफेर की अनुमति देता है।

तकनीकी सीमाएँ और कमियाँ

  • कोई संपीड़न नहीं: PNG जैसे संपीड़ित प्रारूपों की तुलना में बड़ी फ़ाइल पदचिह्न।
  • भौतिक आयामों, रंग स्थानों या भौगोलिक स्थिति के लिए मेटाडेटा का अभाव है।
  • सख्त एकल-चैनल: रंग डेटा या अल्फा पारदर्शिता संग्रहीत नहीं कर सकता है।

रोचक तकनीकी जानकारी

  • OpenCV, ROS (रोबोट ऑपरेटिंग सिस्टम), और मशीन विज़न सिस्टम SLAM नेविगेशन मैप्स के लिए अक्सर PGM का उपयोग करते हैं।
  • गेम डेवलपर अक्सर भूभाग हाइटमैप के रूप में 16-बिट PGM फ़ाइलों का उपयोग करते हैं क्योंकि कच्चा ऊंचाई डेटा संपीड़ित नहीं होता है और लोड करने में आसान होता है।
  • हेडर में 'maxval' पैरामीटर अधिकतम चमक मूल्य को परिभाषित करता है (आमतौर पर 8-बिट के लिए 255 या 16-बिट के लिए 65535)।

अक्सर पूछे جانے वाले तकनीकी प्रश्न

PGM फॉर्मेट का उपयोग किस लिए किया जाता है?

PGM का उपयोग मुख्य रूप से कंप्यूटर विजन (OpenCV), रोबोटिक्स (ROS मैप फ़ाइलें), वैज्ञानिक इमेजिंग और 3D टेरेन हाइटमैप जनरेशन में किया जाता है।

P2 और P5 PGM फ़ाइलों में क्या अंतर है?

P2 सादा ASCII टेक्स्ट है जहाँ प्रत्येक पिक्सेल एक लिखित संख्या होती है, जबकि P5 पिक्सेल को कॉम्पैक्ट बाइनरी बाइट्स के रूप में स्टोर करता है।

मैं PGM को JPG या PNG में कैसे बदल सकता हूँ?

पूर्ण गोपनीयता के साथ सीधे अपने ब्राउज़र में इसे PNG या JPG में बदलने के लिए अपनी PGM फ़ाइल को File2File.app पर अपलोड करें।