Portable Graymap (.pgm)

Netpbm Standard

Portable Graymap Format (PGM) er gråtonebilledspecifikationen i Netpbm-familien, som er meget brugt inden for computersyn, robotteknologi, optisk inspektion og digitale billedbehandlingsalgoritmer.

Undersøgelse og metadata

Operativsystemer og filanalysatorer identificerer PGM-filer ved at inspicere den indledende binære bytesekvens:

Vælg eller træk filer hertil

Privat - filer forlader aldrig din enhed

eller indsæt Ctrl+V
Privatlivsgaranti uden netværksoverførsel: 0 byte overført til eksterne servere. Al behandling foregik lokalt i browserens sandkasse.

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 35

ASCII-REPRÆSENTATION: P2 / P5

Standardisering: Netpbm Library Standard

Tekniske specifikationer

ContainerarkitekturASCII-Netpbm-format (P2) eller binært Netpbm-format (P5) med bredde, højde, maksimal gråtoneværdi og pixelstrøm
KomprimeringUkomprimerede rå binære bytes eller menneskeligt læsbare ASCII-tal
Byte-rækkefølgeBig-Endian (for 16-bit-binære samples i P5-tilstand)
FarverumLineære gråtoner eller sRGB-gråtoner
Kanaler og struktur1 kanal i gråtoner (8-bit- eller 16-bit-præcision)
Maks. dimensionerPraktisk talt ubegrænset (understøtter vilkårlige 64-bit-koordinater)
GennemsigtighedIngen
Streaming og progressivSekventiel streamingafspilning række for række

Teknisk sammenligningsmatrix: PGM sammenlignet med konkurrenterne

Teknisk attributPGM (Aktuel)PBMPPMPNG
FarvetilstandGråtoner (8-bit / 16-bit)1-bit monokromRGB Truecolor (24-bit / 48-bit)Gråtoner, RGB, RGBA
Netpbm-søskendePGM (Portable Graymap)PBM (Portable Bitmap)PPM (Portable Pixmap)Ikke-Netpbm W3C-standard
Magiske bytesP2 (ASCII) / P5 (Binær)P1 (ASCII) / P4 (Binær)P3 (ASCII) / P6 (Binær)‰PNG....
KomprimeringUkomprimeretUkomprimeretUkomprimeretTabsfri 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.app 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

  • Heltalsoverlø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: Sæt loft over maksimalt tilladte dimensioner og hukommelsesallokeringsgrænser før læsning af pixelstrømme.

Historisk oprindelse og milepæle

200016-bit dybde (maxval op til 65535) standardiseret i binær P5-tilstand til videnskabelig billedbehandling.
1993Inkorporeret i Netpbm-værktøjskassen som standard-mellemliggende gråtoneformat.
1989Jef Poskanzer opretter PGM som supplement til PBM med fuld 256-niveaus gråtoneunderstøttelse.

Vigtige fordele og styrker

  • Den kompakte PGM-struktur kan gøre det ligetil at implementere grundlæggende læsere, men håndtering af sampledybder, headere og fejlbehæftede input kræver stadig omhu.
  • 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).

Interessante tekniske fakta

  • OpenCV, ROS (Robot Operating System) og maskinsynssystemer bruger ofte PGM til SLAM-navigationskort.
  • Spiludviklere bruger ofte 16-bit PGM-filer som højdekort over terræn, fordi rå højdedata 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?

PGM gemmer gråtoneværdier. Konvertér til PNG for at få et tabsfrit billede, der understøttes af mange billedvisere, eller til JPEG, hvis du har brug for en mindre fotofil. Konverteringen foregår i din browser.