Przenośna mapa pikseli (.ppm)

Netpbm Standardní

Portable Pixmap Format (PPM) je plnobarevný RGB standard rodiny grafických formátů Netpbm, který poskytuje nejjednodušší možnou nekomprimovanou reprezentaci plnobarevných digitálních obrázků.

Kontrola a metadata

Operační systémy a analyzátory souborů identifikují soubory PPM kontrolou počáteční binární sekvence bajtů:

Vyberte nebo přetáhněte soubory sem

Soukromě - soubory nikdy neopustí vaše zařízení

nebo vložte Ctrl+V
Záruka ochrany soukromí s nulovým přenosem po síti: 0 bajtů odesláno na externí servery. Veškeré zpracování probíhalo lokálně v sandboxu vašeho prohlížeče.

Podpis hlavičky na úrovni bajtů (Magic Bytes)

Operační systémy a analyzátory souborů identifikují soubory PPM kontrolou počáteční binární sekvence bajtů:

HEXADECIMÁLNÍ PODPIS (POSUN 0):

50 33 / 50 36

ASCII REPREZENTACE: P3 / P6

Standardizace: Netpbm Library Standard

Technické specifikace

Architektura kontejneruFormát Netpbm v ASCII (P3) nebo binární podobě (P6) s šířkou, výškou, maximální hodnotou barvy a proudem trojic RGB
KompreseNekomprimované surové binární bajty nebo trojice čísel v textu ASCII čitelném pro člověka
Pořadí bajtůBig-endian (u 48bitových vzorků se 16 bity na kanál v režimu P6)
Barevné prostoryLineární RGB nebo standardní sRGB
Kanály a struktura3 kanály RGB (24bitové nebo 48bitové plnobarevné RGB)
Max. rozměryPrakticky neomezené (podpora libovolného 64bitového rozsahu souřadnic)
PrůhlednostŽádná (standardní PPM obsahuje pouze neprůhledné RGB)
Streamování a progresivní načítáníSekvenční streamování po jednotlivých řádcích

Technická srovnávací matice: PPM vs konkurence

Technický atributPPM (Aktuální)BMPPNGTIFF
Barevná hloubka24bitové / 48bitové plnobarevné RGBRGBA od 1 do 32 bitů24bitový / 48bitový RGBA8bitový až 64bitový RGBA
Příbuzný v NetpbmPPM (Portable Pixmap)Formát mimo NetpbmFormát W3C mimo NetpbmFormát Adobe mimo Netpbm
Magické bajtyP3 (ASCII) / P6 (Binární)BM (0x42 0x4D)‰PNG....II*\0 nebo MM\0*
KompreseNekomprimovánoNekomprimováno / RLEBezztrátová komprese Deflate; úspora místa závisí na obsahu obrázkuLZW / Deflate / Zip

Běžné režimy poškození a příručka pro obnovení v hex

Obrázek se vykresluje s diagonálním zkosením barevných kanálů.

Hlavní příčina: Oříznutý bajt v proudu trojic RGB způsobí posun následujících červených, zelených a modrých bajtů.

Obnovení: Znovu zarovnejte posuny RGB trojic nebo proveďte konverzi pomocí nástroje File2File.app Netpbm Converter.

Bezpečnostní analýza a vektory útoků na parser

Dekodéry PPM se musí chránit před přetečením celého čísla při výpočtu velikostí vyrovnávací paměti pro 3bajtové RGB trojice.

Známé vektory útoků

  • Přetečení celého čísla během alokace vyrovnávací paměti šířka * výška * 3.
  • Čtení za hranicemi vyrovnávací paměti při čtení chybně formátovaných tokenů ASCII v režimu P3.
  • Odepření služby (DoS) prostřednictvím nadměrných deklarací alokace paměti.

Doporučené bezpečnostní postupy: Před dekódováním přísně omezte alokaci paměti podle skutečné velikosti souboru.

Historický vývoj a milníky

2000Do specifikace Netpbm P6 byla přidána 48bitová barevná hloubka (16 bitů na kanál).
1993PPM se používá jako jednoduchý mezilehlý nebo výstupní formát v některých unixových grafických nástrojích ze sady Netpbm.
1989Jef Poskanzer dokončuje triumvirát Netpbm (PBM, PGM, PPM) s plnobarevným formátem PPM.

Klíčové výhody a přednosti

  • Hlavičku a vzorky pixelů PPM lze snadno zapisovat z grafického programu. Pokud potřebujete zpracovat textové i binární varianty nebo bezpečně ošetřit chybné soubory, použijte knihovnu.
  • Režim ASCII (P3) umožňuje programátorům prohlížet, kopírovat a upravovat surové hodnoty barev RGB přímo v textovém editoru.
  • PPM se používá jako jednoduchý mezilehlý nebo výstupní formát v některých kurzech počítačové grafiky a příkladech raytracerů.

Technická omezení a nevýhody

  • Nekomprimované 8bitové obrázky P6 mohou být velké; RGB obrázek o rozměrech 3840 × 2160 pixelů zabere pro obrazová data přibližně 24,9 milionu bajtů, bez hlavičky.
  • Neefektivní pro webovou distribuci nebo přenos po síti.
  • Žádná podpora pro alfa průhlednost nebo vložené barevné profily.

Zajímavé technické drobnosti

  • Některé úvodní příklady raytracerů používají PPM jako výstupní formát, protože jeho obrazová data lze snadno zapisovat.
  • V ASCII PPM ('P3') je obrázek doslova textovým souborem čísel: '255 0 0' pro červenou, '0 255 0' pro zelenou, '0 0 255' pro modrou.
  • Sada Netpbm byla původně distribuována na páskách 4.3BSD Unix koncem 80. let.

Často kladené technické otázky

Proč kurzy informatiky používají formát PPM?

PPM ukládá vzorky RGB pixelů v souboru s krátkou hlavičkou, takže raytracer může zapsat obrázek bez složitého kodeku. Aplikace však musí zvládnout textovou variantu P3 i binární variantu P6 a pravidla pro bitovou hloubku vzorků.

Jaký je rozdíl mezi formáty PPM typu P3 a P6?

P3 ukládá trojice RGB jako prostá textová čísla ASCII, zatímco P6 ukládá trojice RGB jako surové binární bajty.

Jak mohu převést soubor PPM do formátu JPG nebo PNG?

Soubory PPM můžete převést do formátu PNG nebo JPG přímo ve svém prohlížeči pomocí aplikace File2File.app, aniž by z vašeho zařízení odešla jakákoli data.