Portable Pixmap format (.ppm)

Standard Standard

Portable Pixmap Format (PPM) predstavlja standard u punom RGB koloru Netpbm grafičke porodice, obezbeđujući najjednostavniju moguću nekomprimovanu reprezentaciju Truecolor digitalnih slika.

Pregled i metapodaci

Operativni sistemi i analizatori datoteka identifikuju PPM datoteke proverom početnog binarnog niza bajtova:

Izaberite ili prevucite datoteke ovde

Privatno - datoteke nikada ne napuštaju vaš uređaj

ili nalepite Ctrl+V
Garancija privatnosti: bez prenosa podataka preko mreže 0 bajtova poslato spoljnim serverima. Sva obrada je izvršena lokalno u bezbednom okruženju vašeg pregledača.

Potpis zaglavlja na nivou bajtova (magični bajtovi)

Operativni sistemi i analizatori datoteka identifikuju PPM datoteke proverom početnog binarnog niza bajtova:

HEKSADECIMALNI POTPIS (OFFSET 0):

50 33 / 50 36

ASCII REPREZENTACIJA: P3 / P6

Standardizacija: Standard biblioteke Netpbm

Tehničke specifikacije

Arhitektura kontejneraASCII (P3) ili binarni (P6) Netpbm format sa širinom, visinom, maksimalnom vrednošću boje i nizom RGB trojki
KompresijaNekomprimovani sirovi binarni bajtovi ili čitljive ASCII trojke brojeva
Bajtni redosled (Endianness)Redosled bajtova od najznačajnijeg ka najmanje značajnom (za 48-bitne uzorke sa 16 bita po kanalu u režimu P6)
Prostori bojaLinearni RGB ili standardni sRGB
Kanali i struktura3 kanala RGB (24-bitna ili 48-bitna prava boja)
Maksimalne dimenzijePraktično neograničene (podržavaju proizvoljan koordinatni prostor od 64 bita)
TransparentnostNema (standardni PPM podržava samo neprozirni RGB)
Strimovanje i progresivno učitavanjeSekvencijalni prikaz u strimu, red po red

Tehnička matrica poređenja: PPM u odnosu na konkurente

Tehnički atributPPM (Trenutno)BMPPNGTIFF
Dubina boja24-bitni / 48-bitni RGB Truecolor1-bitni do 32-bitni RGBA24-bitni / 48-bitni RGBA8-bitni do 64-bitni RGBA
Netpbm srodnikPPM (Portable Pixmap)Format van Netpbm-aW3C format van Netpbm-aAdobe format van Netpbm-a
Magični bajtoviP3 (ASCII) / P6 (binarno)BM (0x42 0x4D)‰PNG....II*\0 ili MM\0*
KompresijaNekomprimovanoNekomprimovano / RLENekomprimovano Deflate kompresovanje; ušteda prostora zavisi od sadržaja slikeLZW / Deflate / Zip

Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak

Slika se iscrtava sa dijagonalnim pomeranjem kanala boja.

Osnovni uzrok: Skraćeni bajt u RGB trojnom nizu koji uzrokuje da naredni crveni, zeleni i plavi bajtovi izgube poravnanje.

Oporavak: Ponovo poravnajte ofsete RGB trojki ili izvršite konverziju pomoću File2File.app Netpbm konvertera.

Bezbednosna analiza i vektori napada parsera

PPM dekoderi moraju da se štite od prekoračenja celobrojne vrednosti (integer overflow) prilikom izračunavanja veličine bafera za RGB trojke od 3 bajta.

Poznati vektori napada

  • Prekoračenje celobrojne vrednosti tokom alokacije bafera širina * visina * 3.
  • Prekoračenje opsega bafera pri čitanju nepravilnih ASCII tokena u P3 režimu.
  • Uskraćivanje usluge (DoS) prekomernim deklaracijama za alokaciju memorije.

Najbolje prakse za zaštitu: Nametnite stroga ograničenja alokacije memorije na osnovu fizičke veličine datoteke pre dekodiranja.

Istorijat i prekretnice

200048-bitna dubina boja (16 bita po kanalu) dodata u Netpbm P6 specifikaciju.
1993Postaje posredni format koji koriste neki Unix alati za konverziju grafike u okviru Netpbm paketa.
1989Jef Poskanzer kompletira Netpbm trijumvirat (PBM, PGM, PPM) sa PPM formatom u punom koloru.

Ključne prednosti

  • Zaglavlje i uzorke piksela u PPM-u jednostavno je zapisati iz grafičkog programa. Biblioteka je korisna kada treba parsirati ASCII i binarne varijante ili bezbedno obraditi neispravne datoteke.
  • ASCII režim (P3) omogućava programerima da direktno pregledaju, kopiraju i uređuju sirove RGB vrednosti boja u uređivaču teksta.
  • PPM se koristi kao jednostavan posredni ili izlazni format u nekim kursevima računarske grafike i primerima programa za praćenje zraka.

Tehnička ograničenja i nedostaci

  • Nekomprimovane 8-bitne P6 slike mogu biti velike; RGB slika dimenzija 3840 x 2160 sadrži oko 24,9 miliona bajtova podataka piksela, bez zaglavlja.
  • Neefikasno za distribuciju na vebu ili mrežni prenos.
  • Nema podršku za alfa providnost ili ugrađene profile boja.

Zanimljivosti

  • Neki uvodni primeri programa za praćenje zraka koriste PPM kao izlazni format jer je jednostavno zapisati podatke o pikselima.
  • U ASCII PPM-u ('P3'), slika je doslovno tekstualna datoteka sa brojevima: '255 0 0' za crvenu, '0 255 0' za zelenu, '0 0 255' za plavu.
  • Netpbm paket je originalno distribuiran na 4.3BSD Unix trakama krajem osamdesetih godina prošlog veka.

Često postavljana tehnička pitanja

Zašto kursevi računarstva koriste PPM?

PPM čuva uzorke RGB piksela uz kratko zaglavlje, pa program za praćenje zraka može da upiše sliku bez složenog kodeka. Aplikacije ipak moraju da obrade tekstualnu varijantu P3 i binarnu varijantu P6, kao i pravila za dubinu uzoraka.

Koja je razlika između P3 i P6 PPM-a?

P3 čuva RGB trojke kao obične ASCII tekstualne brojeve, dok P6 čuva RGB trojke kao sirove binarne bajtove.

Kako mogu da konvertujem PPM datoteku u JPG ili PNG?

Možete da konvertujete PPM datoteke u PNG ili JPG direktno u pretraživaču koristeći File2File.app, pri čemu nijedan podatak ne napušta vaš uređaj.