Portable Pixmap (.ppm)

Netpbm Standardno

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.

Pregledaj i metapodaci

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

Изаберите или превуците датотеке овде

100% приватна конверзија у прегледачу – датотеке никада не напуштају ваш уређај

или налепите Ctrl+V
100% Локална обрада у прегледачу 0 бајтова послато спољним серверима. Сва обрада је извршена локално у безбедном окружењу вашег прегледача.

Potpis zaglavlja na nivou bajtova (Magic Bytes)

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

HEX POTPIS (OFFSET 0):

50 33 / 50 36

ASCII REPREZENTACIJA: P3 / P6

Standardizacija: Netpbm Library Standard

Tehničke specifikacije

Arhitektura kontejneraASCII (P3) or binary (P6) Netpbm format with width, height, maximum color value, and RGB triplet stream
KompresijaUncompressed raw binary bytes or human-readable ASCII text triplets
Bajtni redosled (Endianness)Big-Endian (for 48-bit 16-bit/channel samples in P6 mode)
Prostori bojaLinear RGB or standard sRGB
Kanali i struktura3 channels RGB (24-bit or 48-bit Truecolor)
Maksimalne dimenzijePractically unlimited (supports arbitrary 64-bit coordinate space)
TransparentnostNone (standard PPM is strictly opaque RGB)
Strimovanje i progresivno učitavanjeSequential row-by-row streaming playback

Tehnička matrica poređenja: PPM vs Konkurenti

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 (Binarni)BM (0x42 0x4D)‰PNG....II*\0 ili MM\0*
KompresijaNekomprimovanoNekomprimovano / RLEBez gubitaka Deflate (~70% manji)LZW / 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 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) kroz prekomerne deklaracije alokacije memorije.

Defanzivne najbolje prakse:

Istorijat i prekretnice

200048-bitna dubina boja (16 bita po kanalu) dodata u Netpbm P6 specifikaciju.
1993Postaje univerzalna lingua franca za Unix grafičke konzione cevovode u Netpbm alatu.
1989Jef Poskanzer kompletira Netpbm trijumvirat (PBM, PGM, PPM) sa PPM formatom u punom koloru.

Ključne prednosti

  • Apsolutna arhitektonska jednostavnost: zahteva nula biblioteka za kompresiju za čitanje, pisanje ili manipulaciju.
  • ASCII režim (P3) omogućava programerima da direktno pregledaju, kopiraju i uređuju sirove RGB vrednosti boja u uređivaču teksta.
  • Standardni intermedijarni format koji se koristi na univerzitetskim kursevima računarske grafike i u projektima za praćenje zraka (raytracer).

Tehnička ograničenja i nedostaci

  • Ogromne veličine datoteka zbog nedostatka kompresije (fotografija u 4K rezoluciji ima približno 25 megabajta).
  • Neefikasno za distribuciju na vebu ili mrežni prenos.
  • Nema podršku za alfa providnost ili ugrađene profile boja.

Zanimljivosti

  • Gotovo svaki student računarskih nauka koji napiše softverski raytracer izbacuje svoje prve rendere u PPM formatu.
  • 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?

Zato što PPM zahteva nula spoljnih biblioteka ili složenih algoritama kompresije, što studentima omogućava da uče principe računarske grafike sa čistom matematikom sirovih piksela.

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.