Portable Graymap (.pgm)
Netpbm StandardPortable Graymap Format (PGM) är gråskalebildspecifikationen i Netpbm-familjen, som används flitigt inom datorseende, robotik, optisk inspektion och digitala bildbehandlingsalgoritmer.
Granska & Metadata
Operativsystem och filanalysverktyg identifierar PGM-filer genom att granska den inledande binära bytesekvensen:
Signatur för filhuvud på bytenivå (Magic Bytes)
Operativsystem och filanalysverktyg identifierar PGM-filer genom att granska den inledande binära bytesekvensen:
HEX-SIGNATUR (OFFSET 0):
50 32 / 50 35ASCII-REPRESENTATION: P2 / P5
Standardisering: Netpbm Library Standard
Tekniska specifikationer
| Containerarkitektur | ASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream |
| Komprimering | Uncompressed raw binary bytes or human-readable ASCII text numbers |
| Bytessordinning | Big-Endian (for 16-bit binary samples in P5 mode) |
| Färgrymder | Linear Grayscale or sRGB Grayscale |
| Kanaler och struktur | 1 channel grayscale (8-bit or 16-bit precision) |
| Maximala dimensioner | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Transparens | None |
| Strömning och progressiv | Sequential row-by-row streaming playback |
Teknisk jämförelsematris: PGM vs konkurrenter
| Tekniskt attribut | PGM (Aktuell) | PBM | PPM | PNG |
|---|---|---|---|---|
| Färgläge | Gråskala (8-bitars / 16-bitars) | 1-bitars monokrom | RGB Truecolor (24-bitars / 48-bitars) | Gråskala, RGB, RGBA |
| Netpbm-syskon | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | Icke-Netpbm W3C-standard |
| Magiska byts | P2 (ASCII) / P5 (Binär) | P1 (ASCII) / P4 (Binär) | P3 (ASCII) / P6 (Binär) | ‰PNG.... |
| Komprimering | Okomprimerad | Okomprimerad | Okomprimerad | Oförstörande Deflate |
Vanliga skadeorsaker och hex-återställningsguide
Bilden visas inverterad eller helt utfrätt vit.
Grundorsak: Felaktig 'maxval'-parameter i huvudet (t.ex. maxval deklarerat som 1 istället för 255).
Återställning: Korrigera maxval-huvudraden eller transkoda med File2File Netpbm Converter.
Säkerhetsanalys och attackvektorer för tolkar
PGM-avkodare måste noggrant validera att tolkade pixelantal matchar deklarerade dimensioner för att förhindra buffertöverskridning.
Kända attackvektorer
- Heltalsspill vid allokering av buffert för bredd * höjd * (maxval > 255 ? 2 : 1).
- Buffertläsning utanför gränserna vid läsning av felaktiga ASCII-nummertoken.
- Neka till tjänst (DoS) genom enorm minnesallokering utlöst av fingerade huvuddimensioner.
Rekommenderade skyddsåtgärder:
Historiskt ursprung och milstolpar
Viktiga fördelar
- Noll komplexitet: extremt enkelt att tolka och skriva i C, Python eller WebAssembly utan externa bibliotek.
- Inbyggt 16-bitars gråskalestöd gör det idealiskt för höjdkartor, djupkartor och termisk bildbehandling.
- ASCII-läget (P2) tillåter direkt inspektion och manipulering av råa pixelvärden i standardtextredigerare.
Tekniska begränsningar
- Ingen komprimering: stora filstorlekar jämfört med komprimerade format som PNG.
- Saknar metadata för fysiska dimensioner, färgrymder eller geolokalisering.
- Strikt enkanals: kan inte lagra färgdata eller alfatransparens.
Intressant teknisk kuriosa
- OpenCV, ROS (Robot Operating System) och maskinseendesystem använder ofta PGM för SLAM-navigationskartor.
- Spelutvecklare använder ofta 16-bitars PGM-filer som terränghöjdkartor eftersom rådata för höjder är okomprimerade och enkla att läsa in.
- Parametern 'maxval' i huvudet definierar det maximala ljusstyrkevärdet (vanligtvis 255 för 8-bitars eller 65535 för 16-bitars).
Vanliga tekniska frågor
Vad används PGM-formatet till?
PGM används främst inom datorseende (OpenCV), robotteknik (ROS-kartfiler), vetenskaplig bildbehandling och generering av höjdkartor för 3D-terräng.
Vad är skillnaden mellan P2- och P5 PGM-filer?
P2 är ren ASCII-text där varje pixel är ett skrivet nummer, medan P5 lagrar pixlar som kompakta binära byte.
Hur kan jag konvertera PGM till JPG eller PNG?
Ladda upp din PGM-fil till File2File.app för att konvertera den till PNG eller JPG direkt i din webbläsare med fullständig integritet.