Hvad er PNM-filformatet?
.pnm (Portable Anymap) er en overordnet filendelse, der dækker tre relaterede ukomprimerede rasterbillede-underformater fra Netpbm-familien: PBM (Portable Bitmap, 1-bit sort-hvid), PGM (Portable Graymap, gråtoner) og PPM (Portable Pixmap, farve). Den faktiske undertype af enhver .pnm-fil identificeres ved dens første to bytes: P1-P3 for ASCII-varianterne („plain”) og P4-P6 for de binære varianter („raw”).
Jef Poskanzer skabte det oprindelige PBM-format i 1988 som en del af sit Pbmplus-værktøjssæt og tilføjede PGM og PPM kort efter. Formaterne blev designet til at være den enklest mulige lossless billedrepræsentation, der var i stand til at overleve overførsel via 7-bit e-mail-forbindelser. ASCII-varianterne gemmer pixelværdier som decimaltal adskilt af mellemrum efter en header i almindelig tekst; de binære varianter pakker rå bytes umiddelbart efter headeren for mere kompakt lagring.
Farvedybden spænder fra 1 bpp (PBM) til 16 bpp pr. kanal (PGM/PPM med 16-bit maxval), hvilket giver op til 48 bpp for farvebilleder. Formatet definerer ingen komprimering, kryptering, farveprofil, EXIF-data eller thumbnails - det er bevidst minimalistisk.
PNG er den moderne erstatning for lossless lagring, men .pnm-filer forbliver et udbredt mellemformat i Unix-billedbehandlings-pipelines. ImageMagick, GIMP, FFmpeg og stort set alle Unix-billedværktøjer læser og skriver formatet indfødt.
Sikkerhed og tryghed
RISIKO: LOWPNM/PBM/PGM/PPM er blandt de simpleste billedformater - en header i almindelig tekst plus rå pixeldata (eller ASCII-værdier). Ingen kodeeksekvering, ingen scripting, ingen komprimerings-exploits. Meget sikker at åbne. Den største risiko er den potentielt enorme ukomprimerede filstørrelse for billeder i høj opløsning.
Formatdetaljer
kort fortaltProgrammer der åbner PNM-filer
Tekniske detaljer
dyb specifikation| Underformater | Fællesbetegnelse for PBM (P1/P4, 1-bit), PGM (P2/P5, gråtoner) og PPM (P3/P6, farve) |
| Magic bytes | Første 2 bytes: `P` (0x50) + ciffer `1`-`6` (0x31-0x36) - identificerer undertype og ASCII vs. binær kodning |
| ASCII-varianter (P1-P3) | Pixelværdier gemt som decimaltal adskilt af mellemrum - læsbart for mennesker og 7-bit sikkert |
| Binære varianter (P4-P6) | Rå pixel-bytes pakket umiddelbart efter ASCII-headeren - mere kompakt, samme logiske data |
| Komprimering | Ingen - pixeldata gemmes ukomprimeret i alle varianter |
| Farvedybde | 1 bpp (PBM); 8 eller 16 bpp pr. kanal gråtoner (PGM); 24 eller 48 bpp farve (PPM med 16-bit maxval) |
| Header-struktur | ASCII-felter: magisk tal, valgfrie `#` kommentarlinjer, bredde, højde, derefter maxval (mangler for P1/P4 1-bit) |
| Byte-rækkefølge | Big-endian for 16-bit samples i binære P5/P6-varianter; ikke relevant for 8-bit eller ASCII-formater |
| Maxval-begrænsning | Skal være 1-65.535 (uint16); værdier ≤ 255 bruger 1 byte pr. sample i binære P4-P6 tilstande |
| Dimensioner | Intet defineret maksimum; begrænset i praksis af tilgængelig systemhukommelse |
| MIME-type | `image/x-portable-anymap`; undertyper: `image/x-portable-bitmap`, `image/x-portable-graymap`, `image/x-portable-pixmap` |
| PAM-udvidelse | P7 (`.pam`, Portable Arbitrary Map) udvider PNM til vilkårlige kanalantal og bitdybder |
| Typisk brug | Mellemformat i Unix-billedbehandlings-pipelines; indfødt I/O for ImageMagick, GIMP, FFmpeg og de fleste Unix-billedværktøjer |
| Udgivet | 1988 (Jef Poskanzer's Pbmplus toolkit; PBM first, PGM and PPM by year-end) |
| Seneste version | Netpbm 11.x (2020s); format spec stable since early 1990s |
| Åben standard | Ja · royaltyfri |
| Specifikation | netpbm.sourceforge.net |
PNM-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om PNM-filer.