Portable Graymap (.pgm)
Netpbm StandardPortable Graymap Format (PGM) er gråtonebilledspecifikationen i Netpbm-familien, som er meget brugt inden for computersyn, robotteknologi, optisk inspektion og digitale billedbehandlingsalgoritmer.
Undersøg & Metadata
Operativsystemer og filanalysatorer identificerer PGM-filer ved at inspicere den indledende binære bytesekvens:
Byte-niveau Header-signatur (Magic Bytes)
Operativsystemer og filanalysatorer identificerer PGM-filer ved at inspicere den indledende binære bytesekvens:
HEX-SIGNATUR (OFFSET 0):
50 32 / 50 35ASCII-REPRÆSENTATION: P2 / P5
Standardisering: Netpbm Library Standard
Tekniske 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 |
| Bytterejsning | Big-Endian (for 16-bit binary samples in P5 mode) |
| Farverum | Linear Grayscale or sRGB Grayscale |
| Kanaler og struktur | 1 channel grayscale (8-bit or 16-bit precision) |
| Maks. dimensioner | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Gennemsigtighed | None |
| Streaming og progressiv | Sequential row-by-row streaming playback |
Tekniske sammenligningsmatrix: PGM vs. konkurrenter
| Teknisk attribut | PGM (Aktuel) | PBM | PPM | PNG |
|---|---|---|---|---|
| Farvetilstand | Gråtoner (8-bit / 16-bit) | 1-bit monokrom | RGB Truecolor (24-bit / 48-bit) | Gråtoner, RGB, RGBA |
| Netpbm-søskende | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | Ikke-Netpbm W3C-standard |
| Magiske bytes | P2 (ASCII) / P5 (Binær) | P1 (ASCII) / P4 (Binær) | P3 (ASCII) / P6 (Binær) | ‰PNG.... |
| Komprimering | Ukomprimeret | Ukomprimeret | Ukomprimeret | Tabsfri Deflate |
Almindelige korruptionstilstande og hex-gendannelsesvejledning
Billedet vises inverteret eller fuldstændig udbrændt hvidt.
Grundlæggende årsag: Fejmatchet 'maxval'-parameter i hovedet (f.eks. maxval erklæret som 1 i stedet for 255).
Gendannelse: Ret maxval-hovedlinjen eller omkod med File2File Netpbm Converter.
Sikkerhedsanalyse og parser-angrebsvektorer
PGM-afkodere skal omhyggeligt validere, at de parsede pixelantal matcher de erklærede dimensioner for at forhindre bufferoverløb.
Kendte angrebsvektorer
- Heltals-overløb under allokering af bredde * højde * (maxval > 255 ? 2 : 1) buffer.
- Bufferoverlæsning ved læsning af malformede ASCII-nummertokens.
- Nægtelse af tjeneste (DoS) gennem massiv hukommelsesallokering udløst af fabrikerede hoveddimensioner.
Defensive bedste praksisser:
Historisk oprindelse og milepæle
Vigtige fordele og styrker
- Nul kompleksitet: ekstremt enkelt at fortolke og skrive i C, Python eller WebAssembly uden eksterne biblioteker.
- Indbygget 16-bits gråtoneunderstøttelse gør det ideelt til højde- og dybdekort samt termisk billedbehandling.
- ASCII-tilstand (P2) muliggør direkte inspektion og manipulation af rå pixelværdier i almindelige teksteditorer.
Tekniske begrænsninger og ulemper
- Ingen komprimering: store filstørrelser sammenlignet med komprimerede formater som PNG.
- Mangler metadata for fysiske dimensioner, farverum eller geolokalisering.
- Strengt enkeltkanal: kan ikke gemme farvedata eller gennemsigtighed (alfa).
Interessant teknisk trivia
- OpenCV, ROS (Robot Operating System) og maskinsynssystemer bruger ofte PGM til SLAM-navigationskort.
- Spiludviklere bruger ofte 16-bits PGM-filer som terrænhøjdekort, fordi de rå højde-data er ukomprimerede og nemme at indlæse.
- Parametret 'maxval' i filhovedet definerer den maksimale lysstyrkeværdi (typisk 255 for 8-bit eller 65535 for 16-bit).
Ofte stillede tekniske spørgsmål
Hvad bruges PGM-formatet til?
PGM bruges primært inden for computersyn (OpenCV), robotteknologi (ROS-kortfiler), videnskabelig billedbehandling og generering af 3D-terrænhøjde-kort (heightmaps).
Hvad er forskellen mellem P2- og P5 PGM-filer?
P2 er ren ASCII-tekst, hvor hver pixel er et skrevet tal, mens P5 gemmer pixels som kompakte binære bytes.
Hvordan kan jeg konvertere PGM til JPG eller PNG?
Upload din PGM-fil til File2File.app for at konvertere den til PNG eller JPG direkte i din browser med fuldstændig privatliv.