Portable Graymap (.pgm)

Netpbm-bibliotekets Standard

Portable Graymap Format (PGM) er gråtonebildespesifikasjonen i Netpbm-familien, som er mye brukt i datasyn, robotikk, optisk inspeksjon og digitale bildebehandlingsalgoritmer.

Inspeksjon og metadata

Operativsystemer og filanalysatorer identifiserer PGM-filer ved å undersøke den innledende binære bytesekvensen:

Velg eller slipp filer her

Privat - filer forlater aldri enheten din

eller lim inn Ctrl+V
Personverngaranti uten nettverksoverføring: 0 byte ble lastet opp til eksterne servere. All behandling foregikk lokalt i det isolerte nettlesermiljøet ditt.

Filsignatur på bytenivå (magiske byte)

Operativsystemer og filanalysatorer identifiserer PGM-filer ved å undersøke den innledende binære bytesekvensen:

HEX-SIGNATUR (OFFSET 0):

50 32 / 50 35

ASCII-REPRESENTASJON: P2 / P5

Standardisering: Netpbm-bibliotekets standard

Tekniske spesifikasjoner

BeholderarkitekturNetpbm-format i ASCII (P2) eller binær form (P5), med bredde, høyde, maksimal gråtoneverdi og pikselstrøm
KomprimeringUkomprimerte rå byteverdier eller lesbare ASCII-tall
BytterekkefølgeBig-endian (for 16-bits binærverdier i P5-modus)
FargeromLineære gråtoner eller sRGB-gråtoner
Kanaler og strukturÉnkanals gråtonebilde med 8- eller 16-bits presisjon
Maks. dimensjonerI praksis ubegrenset (støtter vilkårlig 64-bits koordinatrom)
GjennomsiktighetIngen
Strømming og progressiv visningStøtter sekvensiell strømming rad for rad

Teknisk sammenligningsmatrise: PGM sammenlignet med konkurrenter

Teknisk attributtPGM (Gjeldende)PBMPPMPNG
FargemodusGråtoner (8-bit / 16-bit)Monokromatisk, 1 bitRGB Truecolor (24-bit / 48-bit)Gråtoner, RGB, RGBA
Beslektet Netpbm-formatPGM (Portable Graymap)PBM (Portable Bitmap)PPM (Portable Pixmap)W3C-standard utenfor Netpbm-familien
SignaturbyteP2 (ASCII) / P5 (binær)P1 (ASCII) / P4 (binær)P3 (ASCII) / P6 (binær)‰PNG....
KompresjonUkomprimertUkomprimertUkomprimertTapsfri 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 headerlinjen for maxval eller transkod med File2File.app Netpbm Converter.

Sikkerhetsanalyse og angrepsvektorer mot parsere

PGM-dekodere må nøye validere at analyserte pikseltall samsvarer med erklærte dimensjoner for å forhindre bufferoverløp.

Kjente angrepsvektorer

  • Heltallsoverflyt under buffertildeling for bredde * høyde * (maxval > 255 ? 2 : 1).
  • Bufferoverlesing ved lesing av misdannede ASCII-talltoken.
  • Tjenestenekt gjennom massiv minnetildeling utløst av oppdiktede dimensjoner i filhodet.

Anbefalte sikkerhetstiltak: Sett grenser for maksimalt tillatte dimensjoner og minnetildelingsgrenser før du leser pikselstrømmer.

Historisk opprinnelse og milepæler

200016-biters dybde (maksverdi opptil 65535) ble standardisert i binær P5-modus for vitenskapelig bildebehandling.
1993Formatet ble innlemmet i Netpbm-verktøysettet som standard mellomliggende gråtoneformat.
1989Jef Poskanzer opprettet PGM for å utfylle PBM med full støtte for 256 grånivåer.

Viktige fordeler

  • Den kompakte PGM-strukturen gjør det forholdsvis enkelt å lage grunnleggende lesere, men det krever omtanke å håndtere prøvedybder, headere og feilformaterte inndata.
  • Innebygd støtte for 16-biters gråtoner gjør formatet ideelt for høydekart, dybdekart og termisk avbildning.
  • ASCII-modus (P2) tillater direkte inspeksjon og manipulering av rå pikselverdier i standard tekstredigeringsprogrammer.

Tekniske begrensninger og ulemper

  • Ingen kompresjon: store filstørrelser sammenlignet med komprimerte formater som PNG.
  • Mangler metadata for fysiske dimensjoner, fargerom eller geolokalisering.
  • Strengt énkanals: kan ikke lagre fargedata eller alfatransparens.

Interessante tekniske fakta

  • OpenCV, ROS (Robot Operating System) og maskinsynssystemer bruker ofte PGM for SLAM-navigasjonskart.
  • Spillutviklere bruker ofte 16-bits PGM-filer som terrenghøydekart fordi de rå høydedataene er ukomprimerte og enkle å 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?

PGM lagrer gråtonedata. Konverter til PNG for et tapsfritt bilde med bred støtte i bildevisere, eller til JPEG hvis du trenger en mindre fil som passer for fotografier. Denne konvertereren kjører i nettleseren.