Vad är filformatet PNM?
.pnm (Portable Anymap) är en samlingsextension som täcker tre relaterade okomprimerade rasterbildsunderformat från Netpbm-familjen: PBM (Portable Bitmap, 1-bitars svartvitt), PGM (Portable Graymap, gråskala) och PPM (Portable Pixmap, färg). Den faktiska undertypen för en .pnm-fil identifieras av dess två första bytes: P1-P3 för ASCII-varianter («plain») och P4-P6 för binära varianter («raw»).
Jef Poskanzer skapade det ursprungliga PBM-formatet 1988 som en del av sin Pbmplus-verktygslåda, och lade till PGM och PPM kort därefter. Formaten designades för att vara den enklast möjliga förlustfria bildrepresentationen, kapabel att överleva överföring via 7-bitars e-postlänkar. ASCII-varianterna lagrar pixelvärden som blankstegsseparerade decimala heltal efter en rubrik i klartext; de binära varianterna packar råa bytes omedelbart efter rubriken för mer kompakt lagring.
Färgdjupet sträcker sig från 1 bpp (PBM) till 16 bpp per kanal (PGM/PPM med 16-bitars maxvärde), vilket ger upp till 48 bpp för färgbilder. Formatet definierar ingen komprimering, kryptering, färgprofil, EXIF-data eller miniatyrbilder - det är avsiktligt minimalt.
PNG är den moderna ersättaren för förlustfri lagring, men .pnm-filer förblir ett allmänt förekommande mellanformat i Unix-baserade bildbehandlingskedjor. ImageMagick, GIMP, FFmpeg och praktiskt taget alla Unix-bildverktyg läser och skriver formatet nativt.
Säkerhet & trygghet
RISK: LOWPNM/PBM/PGM/PPM är bland de enklaste bildformaten - rubrik i klartext plus rå pixeldata (eller ASCII-värden). Ingen kodexekvering, ingen skriptning, inga komprimerings-exploater. Mycket säkert att öppna. Den största risken är den enorma okomprimerade filstorleken för högupplösta bilder.
Formatdetaljer
i ett nötskalProgram som öppnar PNM-filer
Tekniska detaljer
djup specifikation| Underformat | Samlingsnamn för PBM (P1/P4, 1-bit), PGM (P2/P5, gråskala) och PPM (P3/P6, färg) |
| Magiska bytes | Första 2 bytes: `P` (0x50) + siffra `1`-`6` (0x31-0x36) - identifierar undertyp och ASCII- kontra binär kodning |
| ASCII-varianter (P1-P3) | Pixelvärden lagrade som blankstegsseparerade decimala heltal - läsbara för människor och 7-bitars säkra |
| Binära varianter (P4-P6) | Råa pixelbytes packade omedelbart efter ASCII-rubriken - mer kompakt, samma logiska data |
| Komprimering | Ingen - pixeldata lagras okomprimerat i alla varianter |
| Färgdjup | 1 bpp (PBM); 8 eller 16 bpp per kanal gråskala (PGM); 24 eller 48 bpp färg (PPM med 16-bitars maxvärde) |
| Rubrikstruktur | ASCII-fält: magiskt nummer, valfria `#` kommentarsrader, bredd, höjd, sedan maxvärde (saknas för P1/P4 1-bit) |
| Byteordning | Big-endian för 16-bitars samplingar i binära P5/P6-varianter; ej tillämpligt för 8-bitars eller ASCII-format |
| Maxvärdesbegränsning | Måste vara 1-65 535 (uint16); värden ≤ 255 använder 1 byte per sampling i binära P4-P6-lägen |
| Dimensioner | Inget definierat maximum; begränsas i praktiken av tillgängligt systemminne |
| MIME-typ | `image/x-portable-anymap`; undertyper: `image/x-portable-bitmap`, `image/x-portable-graymap`, `image/x-portable-pixmap` |
| PAM-tillägg | P7 (`.pam`, Portable Arbitrary Map) utökar PNM till godtyckliga kanalantal och bitdjup |
| Typisk användning | Mellanformat för Unix-bildbehandlingskedjor; nativ I/O för ImageMagick, GIMP, FFmpeg och de flesta Unix-bildverktyg |
| Släppt | 1988 (Jef Poskanzer's Pbmplus toolkit; PBM first, PGM and PPM by year-end) |
| Senaste version | Netpbm 11.x (2020s); format spec stable since early 1990s |
| Öppen standard | Ja · royaltyfri |
| Specifikation | netpbm.sourceforge.net |
PNM-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om PNM-filer.