Przenośna mapa pikseli (.ppm)
Netpbm ŠtandardPortable Pixmap Format (PPM) je štandard plnofarebného RGB formátu z grafickej rodiny Netpbm, ktorý poskytuje najjednoduchšiu možnú nekomprimovanú reprezentáciu Truecolor digitálnych snímok.
Preskúmať a metadáta
Operačné systémy a analyzátory súborov identifikujú súbory PPM kontrolou počiatočnej binárnej bajtovej sekvencie:
Podpis hlavičky na úrovni bajtov (Magic Bytes)
Operačné systémy a analyzátory súborov identifikujú súbory PPM kontrolou počiatočnej binárnej bajtovej sekvencie:
HEXADECIMÁLNY PODPIS (OFFSET 0):
50 33 / 50 36ASCII REPREZENTÁCIA: P3 / P6
Štandardizácia: Netpbm Library Standard
Technické špecifikácie
| Architektúra kontajnera | ASCII (P3) or binary (P6) Netpbm format with width, height, maximum color value, and RGB triplet stream |
| Kompresia | Uncompressed raw binary bytes or human-readable ASCII text triplets |
| Poradie bajtov (Endianness) | Big-Endian (for 48-bit 16-bit/channel samples in P6 mode) |
| Farebné priestory | Linear RGB or standard sRGB |
| Kanály a štruktúra | 3 channels RGB (24-bit or 48-bit Truecolor) |
| Max. rozmery | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Priehľadnosť | None (standard PPM is strictly opaque RGB) |
| Streamovanie a postupné načítavanie | Sequential row-by-row streaming playback |
Technická porovnávacia matica: PPM vs konkurenti
| Technický atribút | PPM (Aktuálne) | BMP | PNG | TIFF |
|---|---|---|---|---|
| Farebná hĺbka | 24-bit / 48-bit RGB Truecolor | 1-bit až 32-bit RGBA | 24-bit / 48-bit RGBA | 8-bit až 64-bit RGBA |
| Súrodenec Netpbm | PPM (Portable Pixmap) | Formát mimo Netpbm | Formát W3C mimo Netpbm | Formát Adobe mimo Netpbm |
| Magické bajty | P3 (ASCII) / P6 (Binárne) | BM (0x42 0x4D) | ‰PNG.... | II*\0 alebo MM\0* |
| Kompresia | Nekomprimované | Nekomprimované / RLE | Bezstratový Deflate (~o 70 % menší) | LZW / Deflate / Zip |
Bežné režimy poškodenia a príručka na obnovu v hexadecimálnom kóde
Obrázok sa vykresľuje s diagonálnym skosením farebných kanálov.
Hlavná príčina: Skrátený bajt v prúde trojíc RGB, čo spôsobuje posun následných červených, zelených a modrých bajtov.
Obnova: Znovu zarovnajte offsety trojíc RGB alebo konvertujte pomocou Netpbm konvertora File2File.
Bezpečnostná analýza a vektory útokov na parser
Dekodéry PPM sa musia chrániť pred pretečením celého čísla pri výpočte veľkostí vyrovnávacej pamäte 3-bajtových trojíc RGB.
Známe vektory útokov
- Pretečenie celého čísla počas alokácie vyrovnávacej pamäte width * height * 3.
- Nadmerné čítanie vyrovnávacej pamäte pri čítaní chybných tokenov ASCII v režime P3.
- Odopretie služby prostredníctvom nadmerných deklarácií alokácie pamäte.
Najlepšie obranné postupy:
Historický pôvod a míľniky
Kľúčové výhody a prednosti
- Absolútna architektonická jednoduchosť: nevyžaduje žiadne kompresné knižnice na čítanie, zápis ani manipuláciu.
- Režim ASCII (P3) umožňuje programátorom prezerať, kopírovať a upravovať surové hodnoty farieb RGB priamo v textovom editori.
- Štandardný medziformát používaný v univerzitných kurzoch počítačovej grafiky a projektoch raytracerov.
Technické obmedzenia a nevýhody
- Obrovské veľkosti súborov kvôli absencii kompresie (4K fotografia má približne 25 megabajtov).
- Neefektívne pre webovú distribúciu alebo sieťový prenos.
- Žiadna podpora pre alfa priehľadnosť alebo vložené farebné profily.
Zaujímavé technické drobnosti
- Prakticky každý študent informatiky, ktorý píše softvérový raytracer, vydáva svoje prvé rendery vo formáte PPM.
- V ASCII PPM ('P3') je obrázok doslova textovým súborom čísel: '255 0 0' pre červenú, '0 255 0' pre zelenú, '0 0 255' pre modrú.
- Sada Netpbm bola pôvodne distribuovaná na páskových vydaniach 4.3BSD Unix koncom 80. rokov.
Často kladené technické otázky
Prečo kurzy informatiky používajú PPM?
Pretože PPM nevyžaduje žiadne externé knižnice ani zložité kompresné algoritmy, čo študentom umožňuje učiť sa princípy počítačovej grafiky pomocou čistej matematiky surových pixelov.
Aký je rozdiel medzi P3 a P6 PPM?
P3 ukladá trojice RGB ako obyčajné textové čísla ASCII, zatiaľ čo P6 ukladá trojice RGB ako surové binárne bajty.
Ako môžem konvertovať súbor PPM na JPG alebo PNG?
Súbory PPM môžete konvertovať na PNG alebo JPG priamo vo vašom prehliadači pomocou aplikácie File2File.app, pričom z vášho zariadenia neodosielate žiadne dáta.