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ą:
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 36ASCII ATVAIZDAVIMAS: P3 / P6
Standartizacija: Netpbm Library Standard
Techninės specifikacijos
| Konteinerio architektūra | ASCII (P3) or binary (P6) Netpbm format with width, height, maximum color value, and RGB triplet stream |
| Glaudinimas | Uncompressed 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ės | Linear RGB or standard sRGB |
| Kanalai ir struktūra | 3 channels RGB (24-bit or 48-bit Truecolor) |
| Maksimalūs matmenys | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Skaidrumas | None (standard PPM is strictly opaque RGB) |
| Srautas ir progresyvusis įkėlimas | Sequential row-by-row streaming playback |
Techninė palyginimo matrica: PPM vs konkurentai
| Techninis atributas | PPM (Dabartinis) | BMP | PNG | TIFF |
|---|---|---|---|---|
| Spalvų gylis | 24 bitų / 48 bitų RGB Truecolor | nuo 1 iki 32 bitų RGBA | 24 bitų / 48 bitų RGBA | nuo 8 iki 64 bitų RGBA |
| „Netpbm" giminaitis | PPM (Portable Pixmap) | Ne Netpbm formatas | Ne Netpbm W3C formatas | Ne Netpbm Adobe formatas |
| Magiškieji baitai | P3 (ASCII) / P6 (Dvejetainis) | BM (0x42 0x4D) | ‰PNG.... | II*\0 arba MM\0* |
| Glaudinimas | Nesuspaustas | Nesuspaustas / RLE | Be 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
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.