Przenośna mapa szarości (.pgm)
Netpbm StandardníPortable Graymap Format (PGM) je specifikace obrázků ve stupních šedi z rodiny Netpbm, široce používaná v počítačovém vidění, robotice, optické inspekci a algoritmech zpracování digitálních obrazů.
Zkontrolovat a metadata
Operační systémy a analyzátory souborů identifikují soubory PGM kontrolou počáteční binární sekvence bajtů:
Podpis hlavičky na úrovni bajtů (Magic Bytes)
Operační systémy a analyzátory souborů identifikují soubory PGM kontrolou počáteční binární sekvence bajtů:
HEXADECIMÁLNÍ PODPIS (OFFSET 0):
50 32 / 50 35ASCII REPREZENTACE: P2 / P5
Standardizace: Netpbm Library Standard
Technické specifikace
| Architektura kontejneru | ASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream |
| Komprese | Uncompressed raw binary bytes or human-readable ASCII text numbers |
| Endiantita bajtů | Big-Endian (for 16-bit binary samples in P5 mode) |
| Barevné prostory | Linear Grayscale or sRGB Grayscale |
| Kanály a struktura | 1 channel grayscale (8-bit or 16-bit precision) |
| Max. rozměry | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Průhlednost | None |
| Streamování a progresivní načítání | Sequential row-by-row streaming playback |
Technická srovnávací matice: PGM vs konkurence
| Technický atribut | PGM (Aktuální) | PBM | PPM | PNG |
|---|---|---|---|---|
| Barevný režim | Stupně šedi (8-bit / 16-bit) | 1bitová černobílá | Truecolor RGB (24-bit / 48-bit) | Stupně šedi, RGB, RGBA |
| Příbuzný v Netpbm | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | Standard W3C mimo Netpbm |
| Magické bajty | P2 (ASCII) / P5 (Binární) | P1 (ASCII) / P4 (Binární) | P3 (ASCII) / P6 (Binární) | ‰PNG.... |
| Komprese | Nekomprimováno | Nekomprimováno | Nekomprimováno | Bezztrátová Deflate |
Běžné režimy poškození a příručka pro obnovení v hex
Obrázek se zobrazuje invertovaně nebo zcela přesvíceně do bíla.
Hlavní příčina: Neodpovídající parametr 'maxval' v hlavičce (např. maxval deklarován jako 1 namísto 255).
Obnovení: Opravte řádek hlavičky maxval nebo proveďte transkódování pomocí nástroje File2File Netpbm Converter.
Bezpečnostní analýza a vektory útoků na parser
Dekodéry PGM musí pečlivě ověřit, zda analyzované počty pixelů odpovídají deklarovaným rozměrům, aby se předešlo přetečení vyrovnávací paměti.
Známé vektory útoků
- Přetečení celého čísla během alokace vyrovnávací paměti šířka * výška * (maxval > 255 ? 2 : 1).
- Přečtení za hranice vyrovnávací paměti při čtení chybně vytvořených číselných tokenů ASCII.
- Odepření služby (DoS) prostřednictvím masivní alokace paměti vyvolané zcizenými rozměry v hlavičce.
Doporučené bezpečnostní postupy:
Historický vývoj a milníky
Klíčové výhody a přednosti
- Nulová složitost: extrémně jednoduché k analýze a zápisu v jazycích C, Python nebo WebAssembly bez externích knihoven.
- Nativní podpora 16bitových stupňů šedi jej činí ideálním pro výškové mapy, mapy hloubky a termovizi.
- Režim ASCII (P2) umožňuje přímou kontrolu a manipulaci se surovými hodnotami pixelů ve standardních textových editořích.
Technická omezení a nevýhody
- Žádná komprese: velké velikosti souborů v porovnání s komprimovanými formáty, jako je PNG.
- Postrádá metadata pro fyzické rozměry, barevné prostory nebo geolokaci.
- Přísně jednokanálové: nemůže ukládat barevná data ani alfa průhlednost.
Zajímavé technické drobnosti
- OpenCV, ROS (Robot Operating System) a systémy strojového vidění často používají PGM pro navigační mapy SLAM.
- Vývojáři her často používají 16bitové soubory PGM jako výškové mapy terénu, protože surová data o nadmořské výšce jsou nekomprimovaná a snadno se načítají.
- Parametr 'maxval' v hlavičce definuje maximální hodnotu jasu (typicky 255 pro 8bitové nebo 65535 pro 16bitové zobrazení).
Často kladené technické otázky
K čemu se používá formát PGM?
Formát PGM se primárně používá v oblasti počítačového vidění (OpenCV), robotiky (mapové soubory ROS), vědeckého zobrazování a generování 3D výškových map terénu.
Jaký je rozdíl mezi soubory PGM typu P2 a P5?
P2 je prostý text ASCII, kde každý pixel je zapsané číslo, zatímco P5 ukládá pixely jako kompaktní binární bajty.
Jak mohu převést formát PGM na JPG nebo PNG?
Nahráním souboru PGM do aplikace File2File.app jej můžete převést do formátu PNG nebo JPG přímo ve vašem prohlížeči při zachování naprostého soukromí.