Portable Graymap (.pgm)
Netpbm StandardPortable Graymap Format (PGM) er gråtonebildespecifikasjonen i Netpbm-familien, som er mye brukt i datasyn, robotikk, optisk inspeksjon og digitale bildebehandlingsalgoritmer.
Undersøk og metadata
Operativsystemer og filanalysatorer identifiserer PGM-filer ved å undersøke den innledende binære bytesekvensen:
Byte-nivå hodesignatur (Magic Bytes)
Operativsystemer og filanalysatorer identifiserer PGM-filer ved å undersøke den innledende binære bytesekvensen:
HEX-SIGNATUR (OFFSET 0):
50 32 / 50 35ASCII-REPRESENTASJON: P2 / P5
Standardisering: Netpbm Library Standard
Tekniske spesifikasjoner
| Beholderarkitektur | 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 |
| Bytterekkefølge | Big-Endian (for 16-bit binary samples in P5 mode) |
| Fargerom | Linear Grayscale or sRGB Grayscale |
| Kanaler og struktur | 1 channel grayscale (8-bit or 16-bit precision) |
| Maks. dimensjoner | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Gjennomsiktighet | None |
| Strømming og progressiv | Sequential row-by-row streaming playback |
Teknisk sammenligningsmatrise: PGM vs konkurrenter
| Teknisk attributt | PGM (Gjeldende) | PBM | PPM | PNG |
|---|---|---|---|---|
| Fargemodus | Gråtoner (8-bit / 16-bit) | 1-bits monokrom | RGB Truecolor (24-bit / 48-bit) | Gråtoner, RGB, RGBA |
| Netpbm-søsken | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | Ikke-Netpbm W3C-standard |
| Magiske byte | P2 (ASCII) / P5 (Binær) | P1 (ASCII) / P4 (Binær) | P3 (ASCII) / P6 (Binær) | ‰PNG.... |
| Kompresjon | Ukomprimert | Ukomprimert | Ukomprimert | Taptetfri Deflate |
Vanlige korrupsjonsmoduser og heksadesimal gjenopprettingsveiledning
Bildet vises invertert eller helt utbrent hvitt.
Underliggende årsak: Feilaktig 'maxval'-parameter i hodet (f.eks. at maxval er erklært som 1 i stedet for 255).
Utbedring: Korriger maxval-hodelinjen eller transkod med File2File Netpbm Converter.
Sikkerhetsanalyse og parser-angrepsvektorer
PGM-dekodere må nøye validere at analyserte pikseltall samsvarer med erklærte dimensjoner for å forhindre bufferoverløp.
Kjente angrepsvektorer
- Heltallsoverflyt under bredde * høyde * (maxval > 255 ? 2 : 1) buffertildeling.
- Bufferoverlesing ved lesing av misdannede ASCII-talltoken.
- Denial of service gjennom massiv minnetildeling utløst av fabrikkerte hodetdimensjoner.
Beste praksis for forsvar:
Historisk opprinnelse og milepæler
Viktige fordeler
- Null kompleksitet: ekstremt enkelt å analysere og skrive i C, Python eller WebAssembly uten eksterne biblioteker.
- Innebygd 16-bits gråtonestøtte gjør det ideelt for høydekart, dybdekart og termisk bildebehandling.
- ASCII-modus (P2) tillater direkte inspeksjon og manipulering av rå pikselsverdier i standard tekstredigeringsprogrammer.
Tekniske begrensninger og ulemper
- Ingen kompresjon: store filavtrykk sammenlignet med komprimerte formater som PNG.
- Mangler metadata for fysiske dimensjoner, fargerom eller geolokalisering.
- Strengt enkanals: kan ikke lagre fargemadata eller alfatransparens.
Interessante tekniske fakta
- OpenCV, ROS (Robot Operating System) og maskinsynssystemer bruker ofte PGM for SLAM-navigasjonsskilt.
- Spillutviklere bruker ofte 16-bits PGM-filer som terrenghøydekart fordi de rå høydataene er ukomprimerte og enkle te å laste inn.
- Parameteren 'maxval' i hodet definerer den maksimale lysstyrkeverdien (vanligvis 255 for 8-bit eller 65535 for 16-bit).
Ofte stilte tekniske spørsmål
Hva brukes PGM-formatet til?
PGM brukes primært innen datasyn (OpenCV), robotikk (ROS-kartfiler), vitenskapelig avbildning og generering av 3D-terrenghøydekart.
Hva er forskjellen mellom P2- og P5 PGM-filer?
P2 er ren ASCII-tekst der hver piksel er et skrevet tall, mens P5 lagrer piksler som kompakte binære byte.
Hvordan kan jeg konvertere PGM til JPG eller PNG?
Last opp PGM-filen din til File2File.app for å konvertere den til PNG eller JPG direkte i nettleseren din med fullstendig personvern.