Portable Pixmap (.ppm)

Netpbm Standarts

Portable Pixmap formāts (PPM) ir Netpbm grafikas saimes pilnas krāsu gammas RGB standarts, kas nodrošina vienkāršāko iespējamo nesaspiesto Truecolor digitālo attēlu attēlojumu.

Pārbaudīt un metadati

Operētājsistēmas un failu analizatori identificē PPM failus, pārbaudot sākotnējo bināro baitu secību:

Atlasiet vai velciet failus šeit

100% privāta konvertēšana pārlūkprogrammā - faili nekad neatstāj jūsu ierīci

vai ielīmējiet Ctrl+V
Privātuma garantija bez datu pārraides tīklā: 0 baitu augšupielādēti ārējos serveros. Visa apstrāde notika lokāli jūsu pārlūkprogrammas smilškastē.

Baitu līmeņa galvenes paraksts (maģiskie baiti)

Operētājsistēmas un failu analizatori identificē PPM failus, pārbaudot sākotnējo bināro baitu secību:

HEKSADECIMĀLAIS PARAKSTS (NOBĪDE 0):

50 33 / 50 36

ASCII ATTEIOLOJUMS: P3 / P6

Standartizācija: Netpbm Library Standard

Tehniskās specifikācijas

Konteinera arhitektūraASCII (P3) or binary (P6) Netpbm format with width, height, maximum color value, and RGB triplet stream
SaspiešanaUncompressed raw binary bytes or human-readable ASCII text triplets
Baitu secībaBig-Endian (for 48-bit 16-bit/channel samples in P6 mode)
Krāsu telpasLinear RGB or standard sRGB
Kanāli un struktūra3 channels RGB (24-bit or 48-bit Truecolor)
Maks. izmēriPractically unlimited (supports arbitrary 64-bit coordinate space)
CaurspīdīgumsNone (standard PPM is strictly opaque RGB)
Straumēšana un progresīvā ielādeSequential row-by-row streaming playback

Tehniskā salīdzinājuma matrica: PPM pret konkurentiem

Tehniskais atribūtsPPM (Pašreizējais)BMPPNGTIFF
Krāsu dziļums24 bitu / 48 bitu RGB TruecolorNo 1 līdz 32 bitu RGBA24 bitu / 48 bitu RGBANo 8 līdz 64 bitu RGBA
Netpbm radinieksPPM (Portable Pixmap)Nav Netpbm formātsNav Netpbm W3C formātsNav Netpbm Adobe formāts
Maģiskie baitiP3 (ASCII) / P6 (Binārais)BM (0x42 0x4D)‰PNG....II*\0 vai MM\0*
SaspiešanaNesaspiestsNesaspiests / RLEBezzudumu Deflate (~70% mazāks)LZW / Deflate / Zip

Biežākie bojājumu veidi un heksadecimālās atkopšanas ceļvedis

Attēls tiek renderēts ar diagonālu krāsu kanālu nobīdi.

Pamatcēlonis: Apgriezts baits RGB tripletu plūsmā, kas izraisa nākamo sarkano, zaļo un zilo baitu nepareizu izlīdzināšanos.

Atkopšana: Atkārtoti izlīdziniet RGB tripletu nobīdes vai konvertējiet, izmantojot File2File Netpbm konvertoru.

Drošības analīze un parsētāja uzbrukuma vektori

PPM dekoderiem ir jāuzmanās no veselu skaitļu pārpildes, aprēķinot 3 baitu RGB tripletu bufera izmērus.

Zināmie uzbrukuma vektori

  • Veselu skaitļu pārpilde platuma * augstuma * 3 bufera piešķires laikā.
  • Bufera pārlasīšana, lasot bojātus ASCII marķierus P3 režīmā.
  • Pakalpojuma atteice (DoS) pārmērīgu atmiņas piešķires deklarāciju dēļ.

Aizsardzības labākā prakse:

Vēsturiskā izcelsme un pavērsieni

2000Netpbm P6 specifikācijai tiek pievienots 48 bitu krāsu dziļums (16 biti uz kanālu).
1993Kļūst par universālu lingua franca Unix grafikas konvertēšanas cauruļvados Netpbm rīkkopā.
1989Jefs Poskanzers pabeidz Netpbm triumvirātu (PBM, PGM, PPM) ar pilnas krāsu gammas PPM formātu.

Galvenās priekšrocības un plusi

  • Absolūta arhitektūras vienkāršība: lai lasītu, rakstītu vai apstrādātu, nav nepieciešamas nekādas saspiešanas bibliotēkas.
  • ASCII režīms (P3) ļauj programmētājiem tieši tekstredaktorā skatīt, kopēt un rediģēt neapstrādātas RGB krāsu vērtības.
  • Standarta starpformāts, ko izmanto universitāšu datorgrafikas kursos un staru izsekošanas (raytracer) projektos.

Tehniskie ierobežojumi un mīnusi

  • Milzīgi failu izmēri saspiešanas trūkuma dēļ (4K fotoattēls aizņem aptuveni 25 megabaitus).
  • Neefektīvs izplatīšanai tīmeklī vai pārsūtīšanai tīklā.
  • Nav atbalsta alfa caurspīdīgumam vai iegultajiem krāsu profiliem.

Interesanti tehniski fakti

  • Gandrīz katrs datorzinātņu students, kurš uzraksta programmatūras staru izsekotāju, savus pirmos attēlus renderē PPM formātā.
  • ASCII PPM ('P3') formātā attēls burtiski ir skaitļu teksta fails: '255 0 0' sarkanajai krāsai, '0 255 0' zaļajai, '0 0 255' zilajai.
  • Netpbm komplekts sākotnēji tika izplatīts uz 4.3BSD Unix lentu laidieniem 1980. gadu beigās.

Bieži uzdotie tehniskie jautājumi

Kāpēc datorzinātņu kursi izmanto PPM?

Tā kā PPM neprasa nekādas ārējas bibliotēkas vai sarežģītus saspiešanas algoritmus, tas ļauj studentiem apgūt datorgrafikas principus ar tīru, neapstrādātu pikseļu matemātiku.

Kāda ir atšķirība starp P3 un P6 PPM?

P3 saglabā RGB tripleti kā vienkāršus ASCII teksta skaitļus, savukārt P6 saglabā RGB tripleti kā neapstrādātus bināros baitus.

Kā es varu konvertēt PPM failu uz JPG vai PNG?

Varat konvertēt PPM failus uz PNG vai JPG tieši savā pārlūkprogrammā, izmantojot File2File.app, un neviens dati neatstāj jūsu ierīci.