Hordozható színes képtérkép (.ppm)
Netpbm SzabványA Portable Pixmap Format (PPM) a Netpbm grafikus család teljes színmélységű RGB szabványa, amely a valódi színű digitális képek lehető legegyszerűbb, tömörítetlen ábrázolását biztosítja.
Vizsgálat és metaadatok
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) PPM fájlokat:
Bájtszintű fejlécaláírás (fájlazonosító bájtok)
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) PPM fájlokat:
HEX ALÁÍRÁS (ELTOLÁS 0):
50 33 / 50 36ASCII ÁBRÁZOLÁS: P3 / P6
Szabványosítás: Netpbm Library Standard
Műszaki specifikációk
| Konténer architektúra | ASCII-alapú (P3) vagy bináris (P6) Netpbm-formátum, amely a szélességet, a magasságot, a maximális színértéket és az RGB-hármasok adatfolyamát tartalmazza |
| Tömörítés | Tömörítetlen nyers bináris bájtok vagy ember által olvasható ASCII-hármasok |
| Bájtsorrend | nagy bájtsorrendű (a P6 mód 48 bites, csatornánként 16 bites mintái esetén) |
| Színterek | Lineáris RGB vagy szabványos sRGB |
| Csatornák és struktúra | 3 RGB-csatorna (24 vagy 48 bites valódi szín) |
| Max. méretek | Gyakorlatilag korlátlan (tetszőleges 64 bites koordinátatartományt támogat) |
| Átlátszóság | Nincs (a szabványos PPM kizárólag átlátszatlan RGB-színeket tárol). |
| Streaming és progresszív | Soronkénti, szekvenciális adatfolyamú lejátszás |
Műszaki összehasonlító mátrix: PPM vs. versenytársak
| Technikai attribútum | PPM (Jelenlegi) | BMP | PNG | TIFF |
|---|---|---|---|---|
| Színmélység | 24 bites / 48 bites RGB Truecolor | 1 bites-32 bites RGBA | 24 bites / 48 bites RGBA | 8 bites-64 bites RGBA |
| Netpbm-testvérformátum | PPM (Portable Pixmap) | Nem Netpbm formátum | Nem Netpbm W3C formátum | Nem Netpbm Adobe formátum |
| Magic bájtok | P3 (ASCII) / P6 (bináris) | BM (0x42 0x4D) | ‰PNG.... | II*\0 vagy MM\0* |
| Tömörítés | Tömörítetlen | Tömörítetlen / RLE | Veszteségmentes Deflate-tömörítés; a fájlméret-csökkenés a kép tartalmától függ | LZW / Deflate / Zip |
Gyakori sérülési módok és hexadecimális helyreállítási útmutató
A kép átlós színcsatorna-eltolódással renderelődik.
Kiváltó ok: Csonka bájt az RGB-hármasok sorozatában, ami a további piros, zöld és kék bájtok elcsúszását okozza.
Helyreállítás: Igazítsa újra az RGB-hármasok eltolásait, vagy alakítsa át a fájlt a File2File.app Netpbm Converterrel.
Biztonsági elemzés és elemző (parser) támadási vektorok
A PPM dekódereknek védekezniük kell az egész szám túlcsordulása ellen a 3 bájtos RGB triplet pufferméretek kiszámításakor.
Ismert támadási vektorok
- Egész szám túlcsordulása a szélesség * magasság * 3 puffer lefoglalása során.
- Pufferen túli olvasás hibás ASCII tokenek olvasásakor P3 módban.
- Szolgáltatásmegtagadás (DoS) túlzott memóriafoglalási deklarációk révén.
Ajánlott védekezési módszerek: Kényszerítsen ki szigorú memóriafoglalási korlátokat a fizikai fájlméret alapján a dekódolás előtt.
Történeti háttér és mérföldkövek
Főbb előnyök
- Abszolút építészeti egyszerűség: semmilyen tömörítési könyvtárat nem igényel az olvasáshoz, íráshoz vagy szerkesztéshez.
- Az ASCII mód (P3) lehetővé teszi a nyers RGB-színértékek közvetlen megtekintését, másolását és szerkesztését szövegszerkesztőben.
- Egyszerű köztes vagy kimeneti formátumként használják egyes számítógépes grafikai kurzusokon és sugárkövetési példákban.
Technikai korlátok és hátrányok
- A tömörítetlen, 8 bites P6-képek nagyok lehetnek; egy 3840 x 2160-as RGB-kép képadatainak mérete körülbelül 24,9 millió bájt a fejléc nélkül.
- Nem hatékony webes terjesztéshez vagy hálózati átvitelhez.
- Nincs támogatás az alfa-átlátszósághoz vagy a beágyazott színprofilokhoz.
Érdekes technikai tudnivalók
- Egyes bevezető sugárkövető-példák PPM-et használnak kimenetként, mert a képpontadatok egyszerűen kiírhatók.
- Az ASCII PPM-ben ('P3') a kép szó szerint számok szöveges fájlja: '255 0 0' a piros, '0 255 0' a zöld, '0 0 255' a kékhez.
- A Netpbm csomagot eredetileg a 4.3BSD Unix szalagos kiadásokon terjesztették az 1980-as évek végén.
Gyakran Ismételt Műszaki Kérdések
Miért használnak PPM-et a számítástechnikai kurzusokon?
A PPM rövid fejlécet és RGB-képpontmintákat tárol, ezért egy sugárkövető összetett kodek nélkül is kiírhat képet. Az alkalmazásoknak azonban kezelniük kell a P3 szöveges és a P6 bináris változatot, valamint a mintamélységre vonatkozó szabályokat.
Mi a különbség a P3 és a P6 PPM között?
A P3 az RGB hármasokat sima ASCII szöveges számokként tárolja, míg a P6 az RGB hármasokat nyers bináris bájtok formájában.
Hogyan alakíthatok át egy PPM fájlt JPG-be vagy PNG-be?
A PPM-fájlokat PNG- vagy JPG-formátumba alakíthatja közvetlenül a böngészőben a File2File.app segítségével; az adatok nem hagyják el az eszközt.