Alt om PGM-filer
enkelt format for gråtonebilder
PGM er gråtonerepresentanten i PBM-familien. Mens PBM kun kjenner til svart og hvitt, tillater PGM opptil 65 535 nyanser mellom de to ytterpunktene. Hver piksel beskrives av en enkelt tallverdi: 0 er svart, og maksimalverdien er hvit. PGM står for «Portable Gray Map» og ble utviklet i slutten av 1988 av Jef Poskanzer som en utvidelse av PBM. For historien til hele formatfamilien, se artikkelen min om PBM.
TLDR:
PGM er gråtoneformatet i Netpbm-familien. Det fungerer som PBM, bare med mer enn to «farger» – nemlig gråtoner. PGM brukes fortsatt i bildebehandling, i utdanning og som mellomformat i pipes. Den som kjenner PBM-artikkelen, kjenner prinsippet; PGM gjør det bare gråere. Den fargerike varianten er tross alt PPM.
Den tekniske oppbygningen
Et PGM-bilde skiller seg fra PBM ved nøyaktig én ekstra linje i overskriften: maksimumsverdien (Maxval). Denne angir hvor mange gråtoner bildet bruker. Også med PGM er det mulig å tegne et bilde på «rutepapir». I stedet for å fargelegge ruter, brukes her tall i hver rute som representerer lysstyrke.
| Komponent | Eksempel | Betydning |
|---|---|---|
| Magisk tall | P2 |
Plain PGM (ASCII-variant) |
| Kommentar | # mein bild |
Valgfritt, innledet med # innledet |
| Bredde Høyde | 24 7 |
Dimensjoner i piksler |
| Maks. verdi | <15 |
Maksimal gråverdi (1–65535) |
| Rasterdata | 0 2 4 6 ... |
Gråtoner per piksel |
Det klassiske FEEP-eksemplet ser slik ut i PGM, hver bokstav får sin egen lysstyrke. (For bedre visning 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 gjenkjennes som i PBM-eksemplet, men bokstavene blir lysere fra venstre til høyre: F er mørkegrå (2), E er mellomgrå (4 og 6), P er hvit (8).
Maxval: den avgjørende forskjellen mellom PBM og PGM
Maxval bestemmer fargedybden i bildet. Med Maxval 1 oppfører PGM seg for øvrig akkurat som PBM. Med Maxval 255 har man 256 gråtoner, noe som tilsvarer et klassisk 8-bits gråtonebilde. Verdier over 255 er mulige (opp til 65535), men brukes sjelden i praksis.
Plain vs. Raw: P2 og P5
Akkurat som med PBM finnes det også en ASCII- og en binær variant av PGM:
| Egenskap | Plain PGM (P2) |
Raw PGM (P5) |
|---|---|---|
| Pikseldata | ASCII-desimaltall | Binær, 1 eller 2 byte per piksel |
| Lesbar for mennesker | Ja, fullstendig | Bare overskriften |
| Lagringsplass per piksel | Variabel (sifre + mellomrom) | 1 byte (maks. verdi ≤ 255) eller 2 byte |
| Maks. linjelengde | 70 tegn anbefales | Ingen begrensning |
Raw-varianten (P5) er standarden for Netpbm-verktøy. Ved en Maxval over 255 brukes to byte per piksel, Big-Endian.
Typiske bruksområder
PGM brukes overalt der det er den rene lysstyrken per piksel som teller, og farge ikke spiller noen rolle:
– Vitenskap og medisin: Røntgenbilder, MR-skanninger og mikroskopibilder behandles ofte som gråtonebilder. PGM egner seg til dette på grunn av sin enkelhet og tapsfri lagring.
– Datasyn: Kantdetektorer (Sobel, Canny), terskelverdimetoder og histogramanalyser arbeider med gråtone-data. PGM leverer disse uten overhead.
– Høydekart og terrengmodeller: Hver piksel representerer en høyde – et bruksområde som passer perfekt til PGMs «én verdi per piksel»-logikk.
– Transparensmasker: I Netpbm brukes PGM også som transparensmaske. Her står hvitt for full dekkevne og svart for full transparens.
– Undervisning: I likhet med PBM egner PGM seg utmerket til å formidle grunnleggende kunnskap om bildebehandling (ikke bildredigering).
Gamma og fargespekter
I henhold til spesifikasjonen er gråverdiene ikke lineære, men følger gamma-overføringsfunksjonen i henhold til ITU-R BT.709 (gamma 2.2). I praksis følger imidlertid mange programmer ikke dette og skriver lineære verdier. Netpbm-verktøyet pnmgamma kan konvertere mellom de to variantene. Også den nå mer vanlige sRGB-overføringsfunksjonen avviker litt fra BT.709, og i virkeligheten bruker de fleste programmer bare sRGB og kaller resultatet PGM.
Kilder
Netpbm PGM-formatspesifikasjon
PBM-artikkel med historien til 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>');
Konvertere, åpne og redigere PGM filer
Detaljer om PGM filer
- Programvare for åpning av PGM filer
- IrfanView
- XnView
- GIMP
- ImageMagick
- Programvare for redigering av PGM filer
- GIMP
- ImageMagick
- Paint.NET
- MIME-type for PGM
- image/x-portable-graymap
- image/x-pgm
Ingen kommentarer