Portable Pixmap (.ppm)

Netpbm Standartinis

„Portable Pixmap Format" (PPM) yra pilvų spalvų RGB standartas iš „Netpbm" grafikos šeimos, suteikiantis paprasčiausią įmanomą nesuspaustą „Truecolor" skaitmeninių vaizdų atvaizdavimą.

Tikrinti ir metaduomenys

Operacinės sistemos ir failų analizatoriai atpažįsta PPM failus tikrindami pradinę dvejetainę baitų seką:

Pasirinkite arba nuvilkite failus čia

100% privatus konvertavimas naršyklėje - failai niekada nepalieka jūsų įrenginio

arba įklijuokite Ctrl+V
Nulinio tinklo perdavimo privatumo garantija: 0 baitų įkelta į išorinius serverius. Visas apdorojimas vyko vietoje, jūsų naršyklės smėlio dėžėje (sandbox).

Baitų lygio antraštės parašas (magiškieji baitai)

Operacinės sistemos ir failų analizatoriai atpažįsta PPM failus tikrindami pradinę dvejetainę baitų seką:

ŠEŠIOLIKTAINIS PARAŠAS (POSLINKIS 0):

50 33 / 50 36

ASCII ATVAIZDAVIMAS: P3 / P6

Standartizacija: Netpbm Library Standard

Techninės specifikacijos

Konteinerio architektūraASCII (P3) or binary (P6) Netpbm format with width, height, maximum color value, and RGB triplet stream
GlaudinimasUncompressed raw binary bytes or human-readable ASCII text triplets
Baitų seka (Endianness)Big-Endian (for 48-bit 16-bit/channel samples in P6 mode)
Spalvų erdvėsLinear RGB or standard sRGB
Kanalai ir struktūra3 channels RGB (24-bit or 48-bit Truecolor)
Maksimalūs matmenysPractically unlimited (supports arbitrary 64-bit coordinate space)
SkaidrumasNone (standard PPM is strictly opaque RGB)
Srautas ir progresyvusis įkėlimasSequential row-by-row streaming playback

Techninė palyginimo matrica: PPM vs konkurentai

Techninis atributasPPM (Dabartinis)BMPPNGTIFF
Spalvų gylis24 bitų / 48 bitų RGB Truecolornuo 1 iki 32 bitų RGBA24 bitų / 48 bitų RGBAnuo 8 iki 64 bitų RGBA
„Netpbm" giminaitisPPM (Portable Pixmap)Ne Netpbm formatasNe Netpbm W3C formatasNe Netpbm Adobe formatas
Magiškieji baitaiP3 (ASCII) / P6 (Dvejetainis)BM (0x42 0x4D)‰PNG....II*\0 arba MM\0*
GlaudinimasNesuspaustasNesuspaustas / RLEBe nuostolių Deflate (~70% mažesnis)LZW / Deflate / Zip

Dažni sugadinimo režimai ir šešioliktainio atkūrimo vadovas

Vaizdas atkuriamas su įstrižu spalvų kanalo poslinkiu.

Pirminė priežastis: Sutrumpintas baitas RGB tūpletų sraute, dėl kurio vėlesni raudoni, žali ir mėlyni baitai nesutampa.

Atkūrimas: Iš naujo sulygiuokite RGB tūpletų poslinkius arba konvertuokite naudodami „File2File Netpbm" keitiklį.

Saugumo analizė ir analizatoriaus atakos vektoriai

PPM dekoderiai turi saugotis sveikųjų skaičių perpildymo apskaičiuodami 3 baitų RGB tūpleto buferio dydžius.

Žinomi atakos vektoriai

  • Sveikųjų skaičių perpildymas plotis * aukštis * 3 buferio paskirstymo metu.
  • Buferio nuskaitymas už ribų skaitant neteisingus ASCII žetonus P3 režimu.
  • Paslaugos trikdžiai per didelį atminties paskirstymo deklaravimą.

Geriausia apsaugos praktika:

Istorinė kilmė ir svarbiausi etapai

2000Į „Netpbm P6" specifikaciją įtrauktas 48 bitų spalvų gylis (16 bitų kanalui).
1993Tapo universalia tarpine kalba („lingua franca") Unix grafikos konvertavimo vamzdynams „Netpbm" įrankių rinkinyje.
1989Jefas Poskanzeris užbaigia „Netpbm" triumviratą (PBM, PGM, PPM) su pilvų spalvų PPM formatu.

Pagrindiniai privalumai

  • Absoliutus architektūrinis paprastumas: nereikia jokių glaudinimo bibliotekų skaityti, rašyti ar manipuliuoti.
  • ASCII režimas (P3) leidžia programuotojams tiesiogiai peržiūrėti, kopijuoti ir redaguoti neapdorotas RGB spalvų reikšmes teksto rengyklėje.
  • Standartinis tarpinis formatas, naudojamas universiteto kompiuterinės grafikos kursuose ir spindulių sekimo (raytracer) projektuose.

Techniniai apribojimai ir trūkumai

  • Milžiniški failų dydžiai dėl glaudinimo trūkumo (4K nuotrauka užima apie 25 megabaitus).
  • Neefektyvus platinimui internete ar perdavimui tinklu.
  • Nėra alfa permatomumo arba įterptų spalvų profilių palaikymo.

Įdomūs techniniai faktai

  • Praktikiai kiekvienas kompiuterių mokslo studentas, kuriantis programinį spindulių sekiklį, savo pirmuosius renderius išveda PPM formatu.
  • ASCII PPM („P3") atveju vaizdas yra tiesiog skaičių tekstinis failas: „255 0 0" reiškia raudoną, „0 255 0" - žalią, „0 0 255" - mėlyną.
  • „Netpbm" rinkinys iš pradžių buvo platinamas su 4.3BSD Unix juostos leidimais devintojo dešimtmečio pabaigoje.

Dažniausiai užduodami techniniai klausimai

Kodėl kompiuterijos kursuose naudojamas PPM?

Kadangi PPM nereikalauja jokių išorinių bibliotekų ar sudėtingų glaudinimo algoritmų, tai leidžia studentams išmokti kompiuterinės grafikos principus taikant gryną žalią pikselių matematiką.

Kuo skiriasi P3 ir P6 PPM?

P3 saugo RGB trigubus elementus kaip paprastus ASCII teksto skaičius, o P6 saugo RGB trigubus elementus kaip neapdorotus dvejetainius baitus.

Kaip galiu konvertuoti PPM failą į JPG arba PNG?

Galite konvertuoti PPM failus į PNG arba JPG tiesiog savo naršyklėje naudodami „File2File.app“, o jokie duomenys nepalieka jūsų įrenginio.