Portable Pixmap (.ppm)

Netpbm-bibliotekets Standard

Portable Pixmap Format (PPM) er fullfarge-RGB-standarden i Netpbm-grafikkfamilien og gir den enklest mulige ukomprimerte representasjonen av digitalbilder med ekte farger.

Inspeksjon og metadata

Operativsystemer og filanalysatorer identifiserer PPM-filer ved å undersøke den innledende binære bytesekvensen:

Velg eller slipp filer her

Privat - filer forlater aldri enheten din

eller lim inn Ctrl+V
Personverngaranti uten nettverksoverføring: 0 byte ble lastet opp til eksterne servere. All behandling foregikk lokalt i det isolerte nettlesermiljøet ditt.

Filsignatur på bytenivå (magiske byte)

Operativsystemer og filanalysatorer identifiserer PPM-filer ved å undersøke den innledende binære bytesekvensen:

HEX-SIGNATUR (OFFSET 0):

50 33 / 50 36

ASCII-REPRESENTASJON: P3 / P6

Standardisering: Netpbm-bibliotekets standard

Tekniske spesifikasjoner

BeholderarkitekturNetpbm-format i ASCII (P3) eller binær form (P6), med bredde, høyde, maksimal fargeverdi og RGB-triplettstrøm
KomprimeringUkomprimerte rå byteverdier eller tripler med lesbare ASCII-tall
BytterekkefølgeBig-endian (for 16-bits verdier per kanal, 48 bit, i P6-modus)
FargeromLineær RGB eller standard sRGB
Kanaler og struktur3 RGB-kanaler (24- eller 48-bits ekte farger)
Maks. dimensjonerI praksis ubegrenset (støtter vilkårlig 64-bits koordinatrom)
GjennomsiktighetIngen (standard PPM er utelukkende ugjennomsiktig RGB)
Strømming og progressiv visningStøtter sekvensiell strømming rad for rad

Teknisk sammenligningsmatrise: PPM sammenlignet med konkurrenter

Teknisk attributtPPM (Gjeldende)BMPPNGTIFF
Fargedybde24-bit / 48-bit RGB Truecolor1-bit til 32-bit RGBA24-bit / 48-bit RGBA8-bit til 64-bit RGBA
Beslektet Netpbm-formatPPM (Portable Pixmap)Ikke-Netpbm-formatIkke-Netpbm W3C-formatIkke-Netpbm Adobe-format
SignaturbyteP3 (ASCII) / P6 (Binær)BM (0x42 0x4D)‰PNG....II*\0 eller MM\0*
KomprimeringUkomprimertUkomprimert / RLETapsfri Deflate-komprimering; plassbesparelsen varierer med bildeinnholdetLZW / Deflate / Zip

Vanlige korrupsjonsmoduser og heksadesimal gjenopprettingsveiledning

Bildet gjengis med diagonal fargekanalforskyvning.

Underliggende årsak: Avskåret byte i RGB-trippelstrømmen fører til at de påfølgende røde, grønne og blå bytene forskyves.

Utbedring: Juster RGB-trippel-forskyvningene på nytt eller konverter ved hjelp av File2File.app Netpbm Converter.

Sikkerhetsanalyse og angrepsvektorer mot parsere

PPM-dekodere må beskytte seg mot heltallsoverflyt ved beregning av bufferstørrelser for 3-bytes RGB-tripler.

Kjente angrepsvektorer

  • Heltallsoverflyt under bufferallokering for bredde * høyde * 3.
  • Lesing utenfor buffergrensene ved lesing av feilformaterte ASCII-tokener i P3-modus.
  • Tjenestenekt gjennom overdrevne minneallokeringserklæringer.

Anbefalte sikkerhetstiltak: Håndhev strenge grenser for minneallokering basert på den fysiske filstørrelsen før dekoding.

Historisk opprinnelse og milepæler

200048-biters fargedybde (16 bit per kanal) ble lagt til i Netpbm P6-spesifikasjonen.
1993Brukes som mellomformat av enkelte grafikkonverteringsverktøy i Netpbm-verktøypakken.
1989Jef Poskanzer fullfører Netpbm-triumviratet (PBM, PGM, PPM) med det fullfargede PPM-formatet.

Viktige fordeler

  • PPM-headeren og pikselverdiene er enkle å skrive ut fra et grafikkprogram. Bruk et bibliotek hvis du må tolke både ASCII- og binærvarianter eller håndtere feilformaterte filer på en sikker måte.
  • ASCII-modus (P3) lar programmerere vise, kopiere og redigere rå RGB-fargeverdier direkte i et tekstredigeringsprogram.
  • PPM brukes som et enkelt mellom- eller utdataformat i enkelte kurs i datagrafikk og eksempler på strålesporere.

Tekniske begrensninger og ulemper

  • Ukomprimerte 8-bits P6-bilder kan bli store; et 3840 x 2160 RGB-bilde bruker rundt 24,9 millioner byte til pikseldata, før headeren.
  • Ineffektivt for nettdistribusjon eller nettverksoverføring.
  • Ingen støtte for alfagjennomsiktighet eller innebygde fargeprofiler.

Interessante tekniske fakta

  • Noen innføringseksempler på strålesporere bruker PPM som utdataformat fordi pikseldataene er enkle å skrive.
  • I ASCII PPM ('P3') er et bilde bokstavelig talt en tekstfil med tall: '255 0 0' for rød, '0 255 0' for grønn, '0 0 255' for blå.
  • Netpbm-pakken ble opprinnelig distribuert på 4.3BSD Unix Tape-utgivelsene på slutten av 1980-tallet.

Ofte stilte tekniske spørsmål

Hvorfor bruker datavitenskapskurs PPM?

PPM lagrer RGB-pikselverdier med en kort header, slik at en strålesporer kan skrive et bilde uten en komplisert kodek. Programmer må likevel håndtere både P3- og P6-variantene og reglene for bitdybde.

Hva er forskjellen mellom P3 og P6 PPM?

P3 lagrer RGB-tripletter som rene ASCII-tall, mens P6 lagrer RGB-tripletter som rå binære byte.

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

Du kan konvertere PPM-filer til PNG eller JPG direkte i nettleseren din ved hjelp av File2File.app uten at noen data forlater enheten din.