Przenośna mapa szarości (.pgm)
Netpbm ŠtandardFormát Portable Graymap Format (PGM) je špecifikácia obrázkov v odtieňoch sivej z rodiny Netpbm, ktorá sa široko používa v počítačovom videní, robotike, optickej kontrole a algoritmoch spracovania digitálneho obrazu.
Preskúmať a metadáta
Operačné systémy a analyzátory súborov identifikujú súbory PGM kontrolou počiatočnej binárnej bajtovej sekvencie:
Podpis hlavičky na úrovni bajtov (Magic Bytes)
Operačné systémy a analyzátory súborov identifikujú súbory PGM kontrolou počiatočnej binárnej bajtovej sekvencie:
HEXADECIMÁLNY PODPIS (OFFSET 0):
50 32 / 50 35ASCII REPREZENTÁCIA: P2 / P5
Štandardizácia: Netpbm Library Standard
Technické špecifikácie
| Architektúra kontajnera | ASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream |
| Kompresia | Uncompressed raw binary bytes or human-readable ASCII text numbers |
| Poradie bajtov (Endianness) | Big-Endian (for 16-bit binary samples in P5 mode) |
| Farebné priestory | Linear Grayscale or sRGB Grayscale |
| Kanály a štruktúra | 1 channel grayscale (8-bit or 16-bit precision) |
| Max. rozmery | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Priehľadnosť | None |
| Streamovanie a postupné načítavanie | Sequential row-by-row streaming playback |
Technická porovnávacia matica: PGM vs konkurenti
| Technický atribút | PGM (Aktuálne) | PBM | PPM | PNG |
|---|---|---|---|---|
| Farebný režim | Odtiene sivej (8-bit / 16-bit) | 1-bitový monochromatický | RGB Truecolor (24-bit / 48-bit) | Odtiene sivej, RGB, RGBA |
| Súrodenec Netpbm | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | Štandard W3C mimo Netpbm |
| Magické bajty | P2 (ASCII) / P5 (Binárny) | P1 (ASCII) / P4 (Binárny) | P3 (ASCII) / P6 (Binárny) | ‰PNG.... |
| Kompresia | Nekomprimované | Nekomprimované | Nekomprimované | Bezstratové Deflate |
Bežné režimy poškodenia a príručka na obnovu v hexadecimálnom kóde
Obrázok sa zobrazuje ako prevrátený alebo úplne prepálený do biela.
Hlavná príčina: Nesprávne zhodný parameter 'maxval' v hlavičke (napr. maxval deklarovaný ako 1 namiesto 255).
Obnova: Opravte riadok hlavičky maxval alebo prekonvertujte pomocou konvertora File2File Netpbm.
Bezpečnostná analýza a vektory útokov na parser
Dekodéry PGM musia starostlivo overovať, či analyzované počty pixelov zodpovedajú deklarovaným rozmerom, aby sa predišlo pretečeniu vyrovnávacej pamäte.
Známe vektory útokov
- Pretečenie celého čísla počas alokácie vyrovnávacej pamäte width * height * (maxval > 255 ? 2 : 1).
- Nadmerné čítanie vyrovnávacej pamäte pri čítaní chybných tokenov čísel ASCII.
- Odopretie služby (DoS) prostredníctvom masívnej alokácie pamäte vyvolanej vymyslenými rozmermi v hlavičke.
Najlepšie obranné postupy:
Historický pôvod a míľniky
Kľúčové výhody a prednosti
- Nulová zložitosť: extrémne jednoduché parsovanie a zápis v jazykoch C, Python alebo WebAssembly bez externých knižníc.
- Natívna podpora 16-bitových odtieňov sivej ho predurčuje pre výškové mapy, mapy hĺbky a termovíziu.
- Režim ASCII (P2) umožňuje priamu kontrolu a úpravu surových hodnôt pixelov v štandardných textových editoroch.
Technické obmedzenia a nevýhody
- Žiadna kompresia: veľká veľkosť súborov v porovnaní s komprimovanými formátmi ako PNG.
- Chýbajú metadáta pre fyzické rozmery, farebné priestory alebo geolokáciu.
- Prísne jednokanálový: nedokáže ukladat farebné dáta ani priesvitnosť alfa.
Zaujímavé technické drobnosti
- OpenCV, ROS (Robot Operating System) a systémy strojového videnia bežne používajú PGM pre navigačné mapy SLAM.
- Vývojári hier často používajú 16-bitové súbory PGM ako výškové mapy terénu, pretože surové údaje o nadmorskej výške sú nekomprimované a ľahko sa načítavajú.
- Parameter 'maxval' v hlavičke definuje maximálnu hodnotu jasu (zvyčajne 255 pre 8-bit alebo 65535 pre 16-bit).
Často kladené technické otázky
Na čo sa používa formát PGM?
Formát PGM sa primárne používa v počítačovom videní (OpenCV), robotike (mapové súbory ROS), vedeckom zobrazovaní a generovaní výškových opršení 3D terénu.
Aký je rozdiel medzi súbormi PGM P2 a P5?
P2 je obyčajný text ASCII, kde každý pixel je zapísané číslo, zatiaľ čo P5 ukladá pixely ako kompaktné binárne bajty.
Ako môžem konvertovať PGM na JPG alebo PNG?
Nahrajte svoj súbor PGM do aplikácie File2File.app a konvertujte ho na PNG alebo JPG priamo vo svojom prehliadači s úplným súkromím.