Alt om PGM filer
et enkelt format til gråtonebilleder
PGM er gråtonevarianten i PBM-familien. Mens PBM kun kender sort og hvid, tillader PGM op til 65.535 nuancer mellem de to yderpunkter. Hver pixel beskrives ved en enkelt talværdi: 0 er sort, den maksimale værdi er hvid. PGM står for "Portable Gray Map" og blev udviklet i slutningen af 1988 af Jef Poskanzer som en udvidelse af PBM. For historien om hele formatfamilien, se min artikel om PBM.
TLDR:
PGM er gråtoneformatet i Netpbm-familien. Det fungerer som PBM, blot med mere end to "farver" – nemlig gråtoner. PGM bruges stadig inden for billedbehandling, i uddannelsessektoren og som mellemformat i pipes. Hvis du kender PBM-artiklen, kender du princippet; PGM gør det blot mere gråt. Den farverige variant er trods alt PPM.
Den tekniske opbygning
Et PGM-billede adskiller sig fra PBM ved netop én ekstra linje i headeren: den maksimale værdi (Maxval). Denne fastlægger, hvor mange gråtoner billedet bruger. Også med PGM er det muligt at tegne et billede på "ternet papir". I stedet for at udfylde felter bruges her i hvert felt tal, der repræsenterer en lysstyrke.
| Komponent | Eksempel | Betydning |
|---|---|---|
| Magic Number | P2 |
Plain PGM (ASCII-variant) |
| Kommentar | # mein bild |
Valgfrit, indledt med # indledt |
| Bredde Højde | 24 7 |
Dimensioner i pixels |
| Maxval | <15 |
Maksimal gråværdi (1-65535) |
| Rasterdata | 0 2 4 6 ... |
Gråværdier pr. pixel |
Det klassiske FEEP-eksempel ser således ud i PGM, hvor hvert bogstav får sin egen lysstyrke. (For at fremstille det bedre med Monospace-font har jeg valgt en Maxval på 8)
P2 # feep.pgm 24 7 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 4 4 4 4 0 0 6 6 6 6 0 0 8 8 8 8 0 0 2 0 0 0 0 0 4 0 0 0 0 0 6 0 0 0 0 0 8 0 0 8 0 0 2 2 2 0 0 0 4 4 4 0 0 0 6 6 6 0 0 0 8 8 8 8 0 0 2 0 0 0 0 0 4 0 0 0 0 0 6 0 0 0 0 0 8 0 0 0 0 0 2 0 0 0 0 0 4 4 4 4 0 0 6 6 6 6 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Teksten FEEP kan genkendes som i PBM-eksemplet, men bogstaverne bliver lysere fra venstre MOD højre: F er mørkegrå (2), E mellemgrå (4 og 6), P hvid (8).
Maxval: den afgørende forskel mellem PBM og PGM
Maxval bestemmer billedets farvedybde. Med Maxval 1 opfører PGM sig for øvrigt nøjagtigt som PBM. Med Maxval 255 har man 256 gråtoner, hvilket svarer til et klassisk 8-bit gråtonebillede. Værdier over 255 er mulige (op til 65535), men bruges sjældent i praksis.
Plain vs. Raw: P2 og P5
Ligesom med PBM findes der også en ASCII- og en binær variant af PGM:
| Egenskab | Plain PGM (P2) |
Raw PGM (P5) |
|---|---|---|
| Pixeldata | ASCII-decimaltal | Binær, 1 eller 2 byte pr. pixel |
| Læseligt for mennesker | Ja, fuldstændigt | Kun overskriften |
| Plads pr. pixel | Variabel (cifre + mellemrum) | 1 byte (Maxval ≤ 255) eller 2 bytes |
| Maks. linjelængde | 70 tegn anbefales | Ingen begrænsning |
Raw-varianten (P5) er standarden for Netpbm-værktøjer. Ved en Maxval over 255 anvendes to bytes pr. pixel, Big-Endian.
Typiske anvendelsesområder
PGM anvendes overalt, hvor det er den rene lysstyrkeværdi pr. pixel, der tæller, og farve ikke spiller nogen rolle:
– Videnskab og medicin: Røntgenbilleder, MR-scanninger og mikroskopibilleder behandles ofte som gråtonebilleder. PGM er velegnet til dette på grund af sin enkelhed og tabsløse lagring.
– Computer Vision: Kantdetektorer (Sobel, Canny), tærskelværdimetoder og histogramanalyser arbejder med gråtone-data. PGM leverer disse uden overhead.
– Højdekort og terrænmodeller: Hver pixel repræsenterer en højde – et anvendelsestilfælde, der passer perfekt til PGM's "én værdi pr. pixel"-logik.
– Transparensmasker: I Netpbm bruges PGM også som transparensmaske. Her står hvidt for fuld dækning og sort for fuldstændig transparens.
– Undervisning: Ligesom PBM er PGM særdeles velegnet til at formidle grundlæggende principper inden for billedbehandling (ikke billedredigering).
Gamma og farverum
Ifølge specifikationen er gråværdierne ikke lineære, men følger gamma-overføringsfunktionen i henhold til ITU-R BT.709 (gamma 2,2). I praksis overholder mange programmer dog ikke dette og skriver lineære værdier. Netpbm-værktøjet pnmgamma kan konvertere mellem de to varianter. Også den i mellemtiden mere udbredte sRGB-overføringsfunktion afviger let fra BT.709, og i virkeligheden bruger de fleste programmer blot sRGB og kalder resultatet PGM.
Kilder
Netpbm PGM-formatspecifikation
PBM-artikel med historien om formatfamilien
.b0 { color: #ccc; }
.b2 {color: #222; }
.b4 {color:#444;}
.b6 {color:#666;}
.b8 { color: #888; }
const el = document.getElementById('pgm');
el.innerHTML = el.textContent.replace(/([0-9])/g, '<span class="b$1">$1</span>');
Konverter, åbn og rediger PGM filer
Detaljer om PGM filer
- Software til åbning af PGM filer
- IrfanView
- XnView
- GIMP
- ImageMagick
- Software til redigering af PGM filer
- GIMP
- ImageMagick
- Paint.NET
- MIME-type i PGM
- image/x-portable-graymap
- image/x-pgm
Sidst opdateret den 23. april 2026 af
Ingen kommentarer