Portable Graymap (.pgm)

Netpbm Standard

Portable Graymap Format (PGM) är gråskalebildspecifikationen i Netpbm-familjen, som används flitigt inom datorseende, robotik, optisk inspektion och digitala bildbehandlingsalgoritmer.

Granska och metadata

Operativsystem och filanalysverktyg identifierar PGM-filer genom att granska den inledande sekvensen av binära byte:

Välj eller släpp filer här

Privat - filer lämnar aldrig din enhet

eller klistra in Ctrl+V
Integritetsgaranti utan nätverksöverföring: 0 byte laddades upp till externa servrar. All bearbetning skedde lokalt i webbläsarens sandlåda.

Signatur i filhuvudet på bytenivå (magiska byte)

Operativsystem och filanalysverktyg identifierar PGM-filer genom att granska den inledande sekvensen av binära byte:

HEX-SIGNATUR (OFFSET 0):

50 32 / 50 35

ASCII-REPRESENTATION: P2 / P5

Standardisering: Netpbm Library Standard

Tekniska specifikationer

ContainerarkitekturNetpbm-format i ASCII (P2) eller binärt (P5), med bredd, höjd, maximalt gråvärde och pixelström
KomprimeringOkomprimerade råa binära byte eller människoläsbara ASCII-tal
ByteordningBig-endian (för 16-bitars binära sampel i P5-läge)
FärgrymderLinjär gråskala eller sRGB-gråskala
Kanaler och struktur1 kanal i gråskala (8 eller 16 bitars precision)
Maximala dimensionerI praktiken obegränsat (stöder godtyckliga koordinatvärden på 64 bitar)
TransparensIngen
Strömning och progressiv visningSekventiell strömmande uppspelning rad för rad

Teknisk jämförelsematris: PGM jämfört med konkurrenter

Tekniskt attributPGM (Aktuell)PBMPPMPNG
FärglägeGråskala (8-bitars / 16-bitars)1-bitars monokromRGB Truecolor (24-bitars / 48-bitars)Gråskala, RGB, RGBA
Netpbm-syskonPGM (Portable Graymap)PBM (Portable Bitmap)PPM (Portable Pixmap)Icke-Netpbm W3C-standard
Magiska byteP2 (ASCII) / P5 (binärt)P1 (ASCII) / P4 (binärt)P3 (ASCII) / P6 (binärt)‰PNG....
KomprimeringOkomprimeradOkomprimeradOkomprimeradOförstörande Deflate

Vanliga skadeorsaker och hex-återställningsguide

Bilden visas inverterad eller helt utfrätt vit.

Grundorsak: Felaktigt värde för 'maxval' i huvudet (t.ex. att maxval anges som 1 i stället för 255).

Återställning: Korrigera maxval-huvudraden eller transkoda med File2File.app 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.
  • Tjänsteavbrott (DoS) genom enorm minnesallokering som utlöses av påhittade mått i filhuvudet.

Rekommenderade skyddsåtgärder: Begränsa maximala dimensioner och minnesallokering innan pixelströmmar läses.

Historiskt ursprung och milstolpar

200016-bitars djup (maxvärde upp till 65535) standardiseras i det binära P5-läget för vetenskaplig bildbehandling.
1993Inkorporeras i Netpbm-verktygslådan som det standardiserade mellanliggande gråskaleformatet.
1989Jef Poskanzer skapar PGM som komplement till PBM med fullt stöd för 256 gråskalesteg.

Viktiga fördelar

  • Den kompakta PGM-strukturen gör det enkelt att implementera grundläggande läsare, men man måste fortfarande hantera samplingsdjup, huvuden och felaktiga indata.
  • 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 vanlig ASCII-text där varje pixel representeras av ett tal, medan P5 lagrar pixlar som kompakta binära byte.

Hur kan jag konvertera PGM till JPG eller PNG?

PGM lagrar gråskalepixlar. Konvertera till PNG för en förlustfri bild med brett visarstöd, eller till JPEG om en mindre fotofil är viktigare; konverteraren körs i webbläsaren.