Portable Pixmap (.ppm)

Netpbm Standard

Portable Pixmap Format (PPM) er fuldfarvestandarden for RGB i Netpbm-grafikfamilien, hvilket giver den enklest mulige ukomprimerede repræsentation af Truecolor-digitale billeder.

Undersøgelse og metadata

Operativsystemer og filanalysatorer identificerer PPM-filer ved at inspicere den indledende binære bytesekvens:

Vælg eller træk filer hertil

Privat - filer forlader aldrig din enhed

eller indsæt Ctrl+V
Privatlivsgaranti uden netværksoverførsel: 0 byte overført til eksterne servere. Al behandling foregik lokalt i browserens sandkasse.

Byte-niveau Header-signatur (Magic Bytes)

Operativsystemer og filanalysatorer identificerer PPM-filer ved at inspicere den indledende binære bytesekvens:

HEX-SIGNATUR (OFFSET 0):

50 33 / 50 36

ASCII-REPRÆSENTATION: P3 / P6

Standardisering: Netpbm Library Standard

Tekniske specifikationer

ContainerarkitekturASCII-Netpbm-format (P3) eller binært Netpbm-format (P6) med bredde, højde, maksimal farveværdi og RGB-tripletstrøm
KomprimeringUkomprimerede rå binære bytes eller menneskeligt læsbare ASCII-teksttripletter
Byte-rækkefølgeBig-Endian (for 48-bit-samples med 16 bit pr. kanal i P6-tilstand)
FarverumLineær RGB eller standard-sRGB
Kanaler og struktur3 kanaler RGB (24-bit eller 48-bit Truecolor)
Maks. dimensionerPraktisk talt ubegrænset (understøtter vilkårlige 64-bit-koordinater)
GennemsigtighedIngen (standard-PPM er kun uigennemsigtig RGB)
Streaming og progressivSekventiel streamingafspilning række for række

Teknisk sammenligningsmatrix: PPM sammenlignet med konkurrenterne

Teknisk attributPPM (Aktuel)BMPPNGTIFF
Farvedybde24-bit / 48-bit RGB Truecolor1-bit til 32-bit RGBA24-bit / 48-bit RGBA8-bit til 64-bit RGBA
Netpbm-søskendePPM (Portable Pixmap)Ikke-Netpbm-formatIkke-Netpbm W3C-formatIkke-Netpbm Adobe-format
Magiske bytesP3 (ASCII) / P6 (Binær)BM (0x42 0x4D)‰PNG....II*\0 eller MM\0*
KomprimeringUkomprimeretUkomprimeret / RLETabsfri Deflate-komprimering; besparelsen i filstørrelse varierer efter billedindholdLZW / Deflate / Zip

Almindelige korruptionstilstande og hex-gendannelsesvejledning

Billedet gengives med diagonal farvekanal-forskydning.

Grundlæggende årsag: Afskåret byte i RGB-tripletstrømmen, hvilket får efterfølgende røde, grønne og blå bytes til at blive fejljusteret.

Gendannelse: Genjuster RGB-tripletforskydninger eller konverter ved hjælp af File2File.app Netpbm Converter.

Sikkerhedsanalyse og parser-angrebsvektorer

PPM-dekodere skal beskytte mod heltalsoverløb ved beregning af bufferstørrelser for 3-byte RGB-tripletten.

Kendte angrebsvektorer

  • Heltals-overløb under allokering af width * height * 3-buffer.
  • Bufferoverlæsning ved læsning af misformede ASCII-tokens i P3-tilstand.
  • Nægtelse af tjeneste (DoS) gennem overdrevne hukommelsesallokeringserklæringer.

Defensive bedste praksisser: Håndhæv strenge hukommelsesallokeringsgrænser baseret på fysisk filstørrelse før afkodning.

Historisk oprindelse og milepæle

200048-bit farvedybde (16 bit pr. kanal) føjet til Netpbm P6-specifikationen.
1993Bliver et mellemliggende format, som nogle Unix-grafikkonverteringsværktøjer i Netpbm-værktøjssættet bruger.
1989Jef Poskanzer fuldender Netpbm-triumviratet (PBM, PGM, PPM) med det fuldfarvede PPM-format.

Vigtige fordele og styrker

  • PPM's header og pixelværdier er enkle at skrive fra et grafikprogram. Brug et bibliotek, hvis du skal fortolke både ASCII- og binærvarianter eller håndtere fejlformaterede filer sikkert.
  • ASCII-tilstand (P3) giver programmerere mulighed for at se, kopiere og redigere rå RGB-farveværdier direkte i en teksteditor.
  • PPM bruges som et enkelt mellem- eller outputformat i nogle kurser i computergrafik og eksempler på raytracere.

Tekniske begrænsninger og ulemper

  • Ukomprimerede 8-bit P6-billeder kan være store; et RGB-billede på 3840 x 2160 bruger cirka 24,9 millioner bytes til pixeldata før headeren.
  • Ineffektiv til webdistribution eller netværksoverførsel.
  • Ingen understøttelse af alfagennemsigtighed eller indlejrede farveprofiler.

Interessante tekniske fakta

  • Nogle indledende eksempler på raytracere bruger PPM som outputformat, fordi pixeldataene er enkle at skrive.
  • I ASCII PPM ('P3') er et billede bogstaveligt talt en tekstfil med tal: '255 0 0' for rød, '0 255 0' for grøn, '0 0 255' for blå.
  • Netpbm-pakken blev oprindeligt distribueret på 4.3BSD Unix Tape-udgivelserne i slutningen af 1980'erne.

Ofte stillede tekniske spørgsmål

Hvorfor bruger datalogiuddannelser PPM?

PPM gemmer RGB-pixelværdier i en kort header, så en raytracer kan skrive et billede uden et komplekst codec. Programmer skal stadig håndtere tekstvarianten P3 og den binære variant P6 samt reglerne for bitdybde.

Hvad er forskellen mellem P3- og P6 PPM?

P3 gemmer RGB-tripletter som rene ASCII-teksttal, mens P6 gemmer RGB-tripletter som rå binære bytes.

Hvordan kan jeg konvertere en PPM-fil til JPG eller PNG?

Du kan konvertere PPM-filer til PNG eller JPG direkte i din browser ved hjælp af File2File.app uden at data forlader din enhed.