Portable Pixmap (.ppm)

Netpbm Standard

Portable Pixmap Format (PPM) on Netpbmi graafikaperekonna täisvärvilises RGB-standardis, mis pakub Truecolor-digipiltide jaoks lihtsaimat võimalikku pakkimata esitust.

Kontrolli ja metaandmed

Operatsioonisüsteemid ja failianalüsaatorid tuvastavad PPM faile, kontrollides algset binaarset baidijada:

Vali või lohista failid siia

100% privaatne konversioon brauseris - failid ei lahku kunagi sinu seadmest

või kleebi Ctrl+V
Null-võrguülekande privaatsusgarantii: 0 baiti laaditakse üles välistesse serveritesse. Kogu töötlemine toimub lokaalselt sinu brauseri liivakastis.

Baidi-taseme päise allkiri (maagilised baidid)

Operatsioonisüsteemid ja failianalüsaatorid tuvastavad PPM faile, kontrollides algset binaarset baidijada:

HEX-ALLKIRI (NIHE 0):

50 33 / 50 36

ASCII-ESITUS: P3 / P6

Standardiseerimine: Netpbm Library Standard

Tehnilised andmed

Konteineri arhitektuurASCII (P3) or binary (P6) Netpbm format with width, height, maximum color value, and RGB triplet stream
TihendamineUncompressed raw binary bytes or human-readable ASCII text triplets
Baitide järjekord (Endianness)Big-Endian (for 48-bit 16-bit/channel samples in P6 mode)
VärviruumidLinear RGB or standard sRGB
Kanalid ja struktuur3 channels RGB (24-bit or 48-bit Truecolor)
Max mõõtmedPractically unlimited (supports arbitrary 64-bit coordinate space)
LäbipaistvusNone (standard PPM is strictly opaque RGB)
Voogedastus ja progressiivsusSequential row-by-row streaming playback

Tehniline võrdlusmaatriks: PPM vs konkurendid

Tehniline atribuutPPM (Praegune)BMPPNGTIFF
Värvisügavus24-bitine / 48-bitine RGB Truecolor1-bitine kuni 32-bitine RGBA24-bitine / 48-bitine RGBA8-bitine kuni 64-bitine RGBA
Netpbm-i sugulanePPM (Portable Pixmap)Netpbm-i mittekuuluv vormingNetpbm-i mittekuuluv W3C vormingNetpbm-i mittekuuluv Adobe vorming
Maagilised baidid (Magic Bytes)P3 (ASCII) / P6 (Binaarne)BM (0x42 0x4D)‰PNG....II*\0 või MM\0*
TihendusTihendamataTihendamata / RLEKadudeta Deflate (~70% väiksem)LZW / Deflate / Zip

Levinud riknemisvead ja heksataaste juhend

Pilt renderdatakse diagonaalse värvikanali nihkega.

Juurpõhjus: Kärbitud bait RGB kolmiku voolus, mis põhjustab järgnevate punaste, roheliste ja siniste baitide paigast nihkumise.

Taastamine: Seadistage RGB kolmiku nihked uuesti või konverteerige File2File Netpbm konverteri abil.

Turvaanalüüs ja parsimisründevektorid

PPM-dekoodrid peavad kaitsma täisarvu ületäitumise (integer overflow) eest 3-baidiste RGB kolmiku puhvri suuruste arvutamisel.

Teadaolevad ründavektorid

  • Täisarvu ületäitumine laius * kõrgus * 3 puhvri eraldamisel.
  • Puhvri ülelugemine P3-režiimis vigaste ASCII-märkide lugemisel.
  • Teenusetõkestus (DoS) liigsete mälumahu eraldamise deklaratsioonide kaudu.

Kaitsealased parimad tavad:

Ajalooline taust ja verstapostid

2000Netpbm P6 spetsifikatsioonile lisati 48-bitine värvisügavus (16 bitti kanali kohta).
1993Saab Unixi graafika konversioonitorude universaalseks keeleks (lingua franca) Netpbm-tööriistakomplektis.
1989Jef Poskanzer viib lõpule Netpbm-i triumviraadi (PBM, PGM, PPM) täisvärvilise PPM-vorminguga.

Peamised eelised

  • Absoluutne arhitektuuriline lihtsus: ei vaja lugemiseks, kirjutamiseks ega töötlemiseks ühtegi pakkimisteeki.
  • ASCII-režiim (P3) võimaldab programmeerijatel töötlemata RGB-värviväärtusi otse tekstiredaktoris vaadata, kopeerida ja redigeerida.
  • Standardne vahevorming, mida kasutatakse ülikoolide arvutigraafika kursustel ja kiirgusjälguri (raytracer) projektides.

Tehnilised piirangud ja puudused

  • Hiiglaslikud failisuurused tihenduse puudumise tõttu (4K foto on ligikaudu 25 megabaiti).
  • Ebatõhus veebis levitamiseks või võrguedastuseks.
  • Ei toeta alfaresolutsiooni läbipaistvust ega sisseehitatud värviprofiile.

Huvitavaid tehnilisi fakte

  • Peaaegu iga arvutiteaduse üliõpilane, kes kirjutab tarkvaralise kiirgusjälguri, väljastab oma esimesed renderdused PPM-vormingus.
  • ASCII PPM-is ('P3') on pilt sõna otseses mõttes numbrite tekstifail: '255 0 0' punase, '0 255 0' rohelise ja '0 0 255' sinise jaoks.
  • Netpbm-komplekt jagati algselt 1980. aastate lõpus 4.3BSD Unixi lindi väljalasetes.

Korduma kippuvad tehnilised küsimused

Miks kasutavad arvutiteaduse kursused PPM-i?

Kuna PPM ei vaja ühtegi välist teeki ega keerulist tihendusalgoritmi, võimaldab see õpilastel õppida arvutigraafika põhimõtteid puhta toore piksli matemaatika abil.

Mis vahe on P3 ja P6 PPM-il?

P3 salvestab RGB kolmikud lihtsate ASCII tekstinumbritena, samas kui P6 salvestab RGB kolmikud toorete binaarsete baitidena.

Kuidas saan ma PPM-faili JPG-ks või PNG-ks teisendada?

Saate PPM-failid teisendada PNG-ks või JPG-ks otse oma brauseris File2File.app abil, ilma et teie seadmest lahkuksid andmed.