Hordozható színes képtérkép (.ppm)

Netpbm Szabvány

A 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:

Válasszon ki vagy húzzon ide fájlokat

Privát - a fájlok soha nem hagyják el az eszközét

vagy beillesztés Ctrl+V
Adatvédelmi garancia hálózati adatátvitel nélkül: 0 bájt került fel külső szerverekre. Minden feldolgozás helyben, a böngésző elkülönített környezetében történt.

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 36

ASCII ÁBRÁZOLÁS: P3 / P6

Szabványosítás: Netpbm Library Standard

Műszaki specifikációk

Konténer architektúraASCII-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ésTömörítetlen nyers bináris bájtok vagy ember által olvasható ASCII-hármasok
Bájtsorrendnagy bájtsorrendű (a P6 mód 48 bites, csatornánként 16 bites mintái esetén)
SzínterekLineáris RGB vagy szabványos sRGB
Csatornák és struktúra3 RGB-csatorna (24 vagy 48 bites valódi szín)
Max. méretekGyakorlatilag korlátlan (tetszőleges 64 bites koordinátatartományt támogat)
ÁtlátszóságNincs (a szabványos PPM kizárólag átlátszatlan RGB-színeket tárol).
Streaming és progresszívSoronkénti, szekvenciális adatfolyamú lejátszás

Műszaki összehasonlító mátrix: PPM vs. versenytársak

Technikai attribútumPPM (Jelenlegi)BMPPNGTIFF
Színmélység24 bites / 48 bites RGB Truecolor1 bites-32 bites RGBA24 bites / 48 bites RGBA8 bites-64 bites RGBA
Netpbm-testvérformátumPPM (Portable Pixmap)Nem Netpbm formátumNem Netpbm W3C formátumNem Netpbm Adobe formátum
Magic bájtokP3 (ASCII) / P6 (bináris)BM (0x42 0x4D)‰PNG....II*\0 vagy MM\0*
TömörítésTömörítetlenTömörítetlen / RLEVeszteségmentes Deflate-tömörítés; a fájlméret-csökkenés a kép tartalmától függLZW / 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

2000A 48 bites színmélység (csatornánként 16 bit) hozzáadása a Netpbm P6 specifikációhoz.
1993A Unix grafikus konverziós folyamatok univerzális közvetítőnyelvévé (lingua franca) válik a Netpbm eszközkészletben.
1989Jef Poskanzer kiegészíti a Netpbm triumvirátust (PBM, PGM, PPM) a teljes színű PPM formátummal.

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.