128 397 143 filer
4,7 Trustpilot
sedan 2013

Allt om PGM-filer

ett enkelt format för gråskalebilder

PGM är gråskalversionen i PBM-familjen. Medan PBM endast har svart och vitt, möjliggör PGM upp till 65 535 nyanser mellan dessa två ytterligheter. Varje pixel beskrivs av ett enda numeriskt värde: 0 är svart, det maximala värdet är vitt. PGM står för "Portable Gray Map" och utvecklades i slutet av 1988 av Jef Poskanzer som en utvidgning av PBM. För historiken om hela formatfamiljen, se min artikel om PBM.

TLDR:

PGM är gråskaleformatet i Netpbm-familjen. Det fungerar som PBM, men med fler än två ”färger” – nämligen gråskalor. PGM används fortfarande inom bildbehandling, utbildning och som mellanformat i pipes. Den som känner till PBM-artikeln känner till principen, PGM gör det helt enkelt gråare. Den färgglada varianten är ju PPM.

Den tekniska uppbyggnaden

En PGM-bild skiljer sig från PBM genom exakt en extra rad i rubriken: maximivärdet (Maxval). Detta anger hur många gråskalor bilden använder. Även med PGM är det möjligt att rita en bild på "rutpapper". Istället för att fylla i rutor används här siffror i varje ruta som representerar en ljusstyrka.

Beståndsdel Exempel Betydelse
Magiskt nummer P2 Plain PGM (ASCII-variant)
Kommentar # mein bild Valfritt, inleds med # inleds
Bredd Höjd 24 7 Dimensioner i pixlar
Maxvärde <15 Maximal gråskala (1-65535)
Rasterdata 0 2 4 6 ... Gråvärden per pixel

Det klassiska FEEP-exemplet ser ut så här i PGM, varje bokstav får sin egen ljusstyrka. (För bättre visning med monospace-typsnitt har jag valt ett 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

Texten FEEP är läsbar precis som i PBM-exemplet, men bokstäverna blir ljusare från vänster till höger: F är mörkgrå (2), E är mellangrå (4 och 6), P är vit (8).

Maxval: den avgörande skillnaden mellan PBM och PGM

Maxval bestämmer bildens färgdjup. Med Maxval 1 beter sig PGM för övrigt precis som PBM. Med Maxval 255 har man 256 gråskalor, vilket motsvarar en klassisk 8-bitars gråskalebild. Värden över 255 är möjliga (upp till 65535), men används sällan i praktiken.

Plain vs. Raw: P2 och P5

Precis som med PBM finns det även för PGM en ASCII- och en binär variant:

Egenskap Plain PGM (P2) Raw PGM (P5)
Pixeldata ASCII-decimaltal Binärt, 1 eller 2 byte per pixel
Läsbar för människor Ja, fullständigt Endast rubriken
Lagringsutrymme per pixel Variabelt (siffror + mellanslag) 1 byte (Maxvärde ≤ 255) eller 2 byte
Max. radlängd 70 tecken rekommenderas Ingen gräns

Raw-varianten (P5) är standard för Netpbm-verktyg. VID ett Maxval över 255 används två byte per pixel, Big-Endian.

Typiska användningsområden

PGM används överallt där det är det rena ljusstyrkevärdet per pixel som är viktigt och färg inte spelar någon roll:

Vetenskap och medicin: Röntgenbilder, MR-skanningar och mikroskopbilder bearbetas ofta som gråskalebilder. PGM lämpar sig för detta tack vare sin enkelhet och förlustfria lagring.
Datorseende: Kantdetektorer (Sobel, Canny), tröskelvärdesmetoder och histogramanalyser arbetar med gråskaledata. PGM levererar dessa utan overhead.
Höjdkartor och terrängmodeller: Varje pixel representerar en höjd – ett användningsfall som passar perfekt till PGM:s logik med ”ett värde per pixel”.
Transparensmasker: I Netpbm används PGM även som transparensmask. Här står vitt för full täckning och svart för fullständig transparens.
Undervisning: Precis som PBM är PGM utmärkt för att förmedla grunderna i bildbehandling (inte bildredigering).

Gamma och färgrymd

Enligt specifikationen är gråvärdena inte linjära, utan följer gammaöverföringsfunktionen enligt ITU-R BT.709 (gamma 2,2). I praktiken följer dock många program inte detta och skriver ut linjära värden. Netpbm-verktyget pnmgamma kan konvertera mellan de båda varianterna. Även den numera vanligare sRGB-överföringsfunktionen avviker något från BT.709 och i verkligheten använder de flesta program helt enkelt sRGB och kallar resultatet PGM.

Källor

Netpbm PGM-formatspecifikation
PBM-artikel med historik över formatfamiljen

.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>');

0.0/5(0 röster)

Konvertera, öppna och redigera PGM-filer

Uppgifter om PGM-filer

Programvara för att öppna PGM-filer
IrfanView
XnView
GIMP
ImageMagick
Programvara för att redigera PGM-filer
GIMP
ImageMagick
Paint.NET
MIME-typ för PGM
image/x-portable-graymap
image/x-pgm

Relaterade filformat

Alla konverterare från eller till PGM

Inga kommentarer

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *


Släpp filer här...