Hva er PNM-filformatet?
.pnm (Portable Anymap) er en samlebetegnelse som dekker tre relaterte ukomprimerte rasterbilde-underformater fra Netpbm-familien: PBM (Portable Bitmap, 1-bit svart-hvitt), PGM (Portable Graymap, gråtoner) og PPM (Portable Pixmap, farger). Den faktiske undertypen til en hvilken som helst .pnm-fil identifiseres av de to første bytene: P1-P3 for ASCII-variantene («plain») og P4-P6 for de binære variantene («raw»).
Jef Poskanzer opprettet det opprinnelige PBM-formatet i 1988 som en del av sitt Pbmplus-verktøysett, og la til PGM og PPM kort tid etter. Formatene ble designet for å være den enklest mulige tapsfrie (lossless) bilderepresentasjonen, i stand til å overleve overføring over 7-bits e-postlenker. ASCII-variantene lagrer pikselverdier som desimale heltall separert med mellomrom etter et hode i ren tekst; de binære variantene pakker rå byte umiddelbart etter hodet for mer kompakt lagring.
Fargedybden varierer fra 1 bpp (PBM) til 16 bpp per kanal (PGM/PPM med 16-bit maxval), noe som gir opptil 48 bpp for fargebilder. Formatet definerer ingen komprimering, kryptering, fargeprofil, EXIF-data eller miniatyrbilder - det er bevisst minimalistisk.
PNG er den moderne erstatningen for tapsfri lagring, men .pnm-filer forblir et utbredt mellomformat i Unix-baserte bildebehandlingsrørledninger. ImageMagick, GIMP, FFmpeg og praktisk talt alle Unix-bildeverktøy leser og skriver formatet naturlig.
Sikkerhet og trygghet
RISIKO: LOWPNM/PBM/PGM/PPM er blant de enkleste bildeformatene - hode i ren tekst pluss rå pikseldata (eller ASCII-verdier). Ingen kodeutførelse, ingen skripting, ingen komprimerings-exploits. Veldig trygt å åpne. Hovedrisikoen er den potensielt enorme ukomprimerte filstørrelsen for bilder med høy oppløsning.
Formatdetaljer
i et nøtteskallProgrammer som åpner PNM-filer
Tekniske detaljer
dyp spesifikasjon| Underformater | Samlebetegnelse for PBM (P1/P4, 1-bit), PGM (P2/P5, gråtoner) og PPM (P3/P6, farger) |
| Magiske byte | Første 2 byte: `P` (0x50) + siffer `1`-`6` (0x31-0x36) - identifiserer undertype og ASCII vs. binær koding |
| ASCII-varianter (P1-P3) | Pikselverdier lagret som desimale heltall separert med mellomrom - menneskelig lesbart og 7-bit sikkert |
| Binære varianter (P4-P6) | Rå piksel-byte pakket umiddelbart etter ASCII-hodet - mer kompakt, samme logiske data |
| Komprimering | Ingen - pikseldata lagres ukomprimert i alle varianter |
| Fargedybde | 1 bpp (PBM); 8 eller 16 bpp per kanal gråtoner (PGM); 24 eller 48 bpp farger (PPM med 16-bit maxval) |
| Hodestruktur | ASCII-felt: magisk tall, valgfrie `#` kommentarlinjer, bredde, høyde, deretter maxval (fraværende for P1/P4 1-bit) |
| Byterekkefølge | Big-endian for 16-bit prøver i binære P5/P6-varianter; ikke relevant for 8-bit eller ASCII-formater |
| Maxval-begrensning | Må være 1-65 535 (uint16); verdier ≤ 255 bruker 1 byte per prøve i binære P4-P6-moduser |
| Dimensjoner | Ingen definert maksimum; begrenset i praksis av tilgjengelig systemminne |
| MIME-type | `image/x-portable-anymap`; undertyper: `image/x-portable-bitmap`, `image/x-portable-graymap`, `image/x-portable-pixmap` |
| PAM-utvidelse | P7 (`.pam`, Portable Arbitrary Map) utvider PNM til vilkårlige kanalantall og bitdybder |
| Typisk bruk | Mellomformat for Unix-bildebehandling; innebygd I/O for ImageMagick, GIMP, FFmpeg og de fleste Unix-bildeverktøy |
| Utgitt | 1988 (Jef Poskanzer's Pbmplus toolkit; PBM first, PGM and PPM by year-end) |
| Siste versjon | Netpbm 11.x (2020s); format spec stable since early 1990s |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | netpbm.sourceforge.net |
PNM-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om PNM-filer.