Portable Pixmap (.ppm)

Netpbm Standard

Portable Pixmap Format (PPM) är fullfärgs-RGB-standarden för Netpbm-grafikfamiljen, och erbjuder den enklaste möjliga okomprimerade representationen av Truecolor-digitalbilder.

Granska och metadata

Operativsystem och filanalysverktyg identifierar PPM-filer genom att granska den inledande sekvensen av binära byte:

Välj eller släpp filer här

Privat - filer lämnar aldrig din enhet

eller klistra in Ctrl+V
Integritetsgaranti utan nätverksöverföring: 0 byte laddades upp till externa servrar. All bearbetning skedde lokalt i webbläsarens sandlåda.

Signatur i filhuvudet på bytenivå (magiska byte)

Operativsystem och filanalysverktyg identifierar PPM-filer genom att granska den inledande sekvensen av binära byte:

HEX-SIGNATUR (OFFSET 0):

50 33 / 50 36

ASCII-REPRESENTATION: P3 / P6

Standardisering: Netpbm Library Standard

Tekniska specifikationer

ContainerarkitekturNetpbm-format i ASCII (P3) eller binärt (P6), med bredd, höjd, maximalt färgvärde och RGB-trippelström
KomprimeringOkomprimerade råa binära byte eller människoläsbara ASCII-tripplar
ByteordningBig-endian (för 16-bitars sampel per kanal i 48-bitars P6-läge)
FärgrymderLinjär RGB eller standardiserad sRGB
Kanaler och struktur3 RGB-kanaler (24- eller 48-bitars Truecolor)
Maximala dimensionerI praktiken obegränsat (stöder godtyckliga koordinatvärden på 64 bitar)
TransparensIngen (standard-PPM är helt ogenomskinligt RGB)
Strömning och progressiv visningSekventiell strömmande uppspelning rad för rad

Teknisk jämförelsematris: PPM jämfört med konkurrenter

Tekniskt attributPPM (Aktuell)BMPPNGTIFF
Färgdjup24-bitars / 48-bitars RGB Truecolor1-bitars till 32-bitars RGBA24-bitars / 48-bitars RGBA8-bitars till 64-bitars RGBA
Besläktat Netpbm-formatPPM (Portable Pixmap)Icke-Netpbm-formatIcke-Netpbm W3C-formatIcke-Netpbm Adobe-format
SignaturbyteP3 (ASCII) / P6 (Binär)BM (0x42 0x4D)‰PNG....II*\0 eller MM\0*
KomprimeringOkomprimeradOkomprimerad / RLEFörlustfri Deflate-komprimering; filstorleksbesparingen varierar med bildinnehålletLZW / Deflate / Zip

Vanliga skadeorsaker och hex-återställningsguide

Bilden renderas med diagonal skjuvning av färgkanalerna.

Grundorsak: Avhuggen byte i RGB-trippelströmmen som gör att efterföljande röda, gröna och blå byte hamnar i fel fas.

Återställning: Återställ fasförskjutningen för RGB-tripplar eller konvertera med File2File.app Netpbm Converter.

Säkerhetsanalys och attackvektorer för tolkar

PPM-avkodare måste skydda mot heltalsspill vid beräkning av buffertstorlekar för RGB-tripplar på 3 byte.

Kända attackvektorer

  • Heltalsspill vid allokering av buffert för bredd * höjd * 3.
  • Buffertläsning utanför gränserna vid inläsning av felaktiga ASCII-tokens i P3-läge.
  • Tjänsteavbrott (DoS) genom begäran om orimligt stora minnesallokeringar.

Rekommenderade skyddsåtgärder: Tillämpa strikta minnesallokeringsgränser baserade på fysisk filstorlek före avkodning.

Historiskt ursprung och milstolpar

200048-bitars färgdjup (16 bitar per kanal) lades till i Netpbm P6-specifikationen.
1993Blir ett mellanformat som används av vissa Unix-grafikkonverteringsverktyg i Netpbm-verktygslådan.
1989Jef Poskanzer slutför Netpbm-triumviratet (PBM, PGM, PPM) med det fullfärgade PPM-formatet.

Viktiga fördelar

  • PPM:s rubrik och pixelvärden är enkla att skriva från ett grafikprogram. Använd ett bibliotek om du behöver tolka både ASCII- och binärvarianter eller hantera felaktiga filer säkert.
  • ASCII-läge (P3) gör det möjligt för programmerare att visa, kopiera och redigera råa RGB-färgvärden direkt i en textredigerare.
  • PPM används som ett enkelt mellan- eller utdataformat i vissa kurser i datorgrafik och exempel på strålspårare.

Tekniska begränsningar

  • Okomprimerade P6-bilder med 8 bitar kan bli stora; en RGB-bild på 3840 × 2160 pixlar använder cirka 24,9 miljoner byte pixeldata, före huvudet.
  • Ineffektivt för webbdistribution eller nätverksöverföring.
  • Inget stöd för alfatransparens eller inbäddade färgprofiler.

Intressant teknisk kuriosa

  • Vissa introducerande exempel på strålspårare använder PPM som utdata eftersom pixeldata är enkel att skriva.
  • I ASCII PPM ('P3') är en bild bokstavligen en textfil med siffror: '255 0 0' för rött, '0 255 0' för grönt, '0 0 255' för blått.
  • Netpbm-sviten distribuerades ursprungligen på 4.3BSD Unix Tape-utgåvorna i slutet av 1980-talet.

Vanliga tekniska frågor

Varför använder datavetenskapskurser PPM?

PPM lagrar RGB-pixelvärden med en kort rubrik, så en strålspårare kan skriva en bild utan en komplicerad kodek. Program behöver ändå hantera både textvarianterna P3 och binärvarianterna P6 samt reglerna för samplingsdjup.

Vad är skillnaden mellan PPM-formaten P3 och P6?

P3 lagrar RGB-tripplar som vanliga ASCII-textnummer, medan P6 lagrar RGB-tripplar som råa binära byte.

Hur kan jag konvertera en PPM-fil till JPG eller PNG?

Du kan konvertera PPM-filer till PNG eller JPG direkt i din webbläsare med hjälp av File2File.app utan att någon data lämnar din enhet.