Portable Graymap (.pgm)
Netpbm SzabványA Portable Graymap Format (PGM) a Netpbm család szürkeárnyalatos képspecifikációja, amelyet széles körben használnak számítógépes látás, robotika, optikai ellenőrzés és digitális képfeldolgozási algoritmusok területén.
Vizsgálat és metaadatok
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) PGM fájlokat:
Bájt-szintű fejléc aláírás (Magic Bytes)
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) PGM fájlokat:
HEX ALÁÍRÁS (ELTOLÁS 0):
50 32 / 50 35ASCII REPREZENTÁCIÓ: P2 / P5
Szabványosítás: Netpbm Library Standard
Műszaki specifikációk
| Konténer architektúra | ASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream |
| Tömörítés | Uncompressed raw binary bytes or human-readable ASCII text numbers |
| Bájtsorrend | Big-Endian (for 16-bit binary samples in P5 mode) |
| Színterek | Linear Grayscale or sRGB Grayscale |
| Csatornák és struktúra | 1 channel grayscale (8-bit or 16-bit precision) |
| Max. méretek | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Átlátszóság | None |
| Streaming és progresszív | Sequential row-by-row streaming playback |
Műszaki összehasonlító mátrix: PGM vs Versenytársak
| Technikai attribútum | PGM (Jelenlegi) | PBM | PPM | PNG |
|---|---|---|---|---|
| Színmód | Szürkeárnyalatos (8 bites / 16 bites) | 1 bites monokróm | RGB Truecolor (24 bites / 48 bites) | Szürkeárnyalatos, RGB, RGBA |
| Netpbm testvér | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | Nem Netpbm W3C szabvány |
| Varázsbájtok | P2 (ASCII) / P5 (Bináris) | P1 (ASCII) / P4 (Bináris) | P3 (ASCII) / P6 (Bináris) | ‰PNG.... |
| Tömörítés | Tömörítetlen | Tömörítetlen | Tömörítetlen | Veszteségmentes Deflate |
Gyakori sérülési módok és hexadecimális helyreállítási útmutató
A kép fordítva vagy teljesen kiégett fehér színnel jelenik meg.
Kiváltó ok: Nem megfelelő 'maxval' paraméter a fejlécben (pl. a maxval értéke 255 helyett 1-ként van megadva).
Helyreállítás: Javítsa ki a maxval fejléc sort, vagy konvertálja át a File2File Netpbm Converterrel.
Biztonsági elemzés és elemző (parser) támadási vektorok
A PGM dekódolóknak gondosan ellenőrizniük kell, hogy a feldolgozott képpontok száma megegyezik-e a deklarált méretekkel a puffertúlcsordulás megelőzése érdekében.
Ismert támadási vektorok
- Egész túlcsordulás szélesség * magasság * (maxval > 255 ? 2 : 1) puffer lefoglalása közben.
- Puffertúlolvasás hibás ASCII számtokenek olvasásakor.
- Szolgáltatásmegtagadás (DoS) a hamis fejlécbeli méretek által kiváltott hatalmas memóriafoglalás révén.
Védekező Legjobb Gyakorlatok:
Történeti háttér és mérföldkövek
Főbb előnyök
- Nulla összetettég: rendkívül egyszerűen elemezhető és írható C, Python vagy WebAssembly nyelven külső könyvtárak nélkül.
- A natív 16 bites szürkeárnyalatos támogatás ideálissá teszi magasságtérképekhez, mélységi térképekhez és hőtérképekhez.
- Az ASCII mód (P2) lehetővé teszi a nyers képpontértékek közvetlen vizsgálatát és manipulálását a szabványos szövegszerkesztőkben.
Technikai korlátok és hátrányok
- Nincs tömörítés: nagy fájlméretek a tömörített formátumokhoz, például a PNG-hez képest.
- Hiányoznak belőle a fizikai méretekre, színterekre vagy földrajzi elhelyezkedésre vonatkozó metaadatok.
- Szigorúan egycsatornás: nem tud színes adatokat vagy átlátszóságot (alfát) tárolni.
Érdekes technikai tudnivalók
- Az OpenCV, a ROS (Robot Operating System) és a gépi látási rendszerek gyakran használják a PGM-et SLAM navigációs térképekhez.
- A játékfejlesztők gyakran használnak 16 bites PGM fájlokat terep-magasságtérképként, mivel a nyers magassági adatok tömörítetlenek és könnyen betölthetők.
- A fejlécben szereplő 'maxval' paraméter határozza meg a maximális fényerőértéket (jellemzően 255 8 bitnél vagy 65535 16 bitnél).
Gyakran Ismételt Műszaki Kérdések
Mire használják a PGM formátumot?
A PGM-et elsősorban a számítógépes látás terén (OpenCV), a robotikában (ROS térképfájlok), a tudományos képalkotásban és a 3D terep magasságtérkép (heightmap) generálásában használják.
Mi a különbség a P2 és P5 PGM fájlok között?
A P2 egy sima ASCII szöveg, ahol minden egyes pixel egy kiírt szám, míg a P5 a pixeleket kompakt bináris bájtokként tárolja.
Hogyan konvertálhatok PGM-et JPG-be vagy PNG-be?
Töltsd fel a PGM fájlodat a File2File.app oldalára, hogy teljes adatvédelem mellett, közvetlenül a böngésződben konvertáld át PNG vagy JPG formátumba.