přenosná pixmapa | |
---|---|
Rozšíření | .pnm[jeden] |
MIME typ | image/x-portable-pixmap, -graymap, -bitmap, -anymap jsou všechny neoficiální |
Vývojář | Poscanzer, Jeffe |
Typ formátu | Grafické formáty |
Mediální soubory na Wikimedia Commons |
Jednoduché přenosné formáty ukládání obrázků pixmap (někdy označované jako PNM ): barevný (PPM), stupně šedi (PGM) a černobílý (PBM) definují pravidla pro výměnu grafických souborů. Tyto formáty mohou poskytnout přechodnou reprezentaci dat při převodu bitmapových grafických souborů tří uvedených typů mezi různými platformami. Některé aplikace podporují tyto tři formáty přímo tím, že je definují jako formát PNM (portable anymap). Formát PPM byl vyvinut Jeffem Poskanzerem .
Podívejme se na příklad bitmapy písmene "J":
....X. ....X. ....X. ....X. ....X. ....X. X...X. .XXX.. ...... ......Formát PBM představuje tento příklad v následující podobě:
P1 # Toto je příklad souboru bitové mapy j.pbm 6 10 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0Řádek P1 definuje formát souboru. Znak libry (#) odděluje komentář. Další dvě čísla jsou šířka a výška. Poté následuje matice hodnot pixelů (v případě monochromatického obrázku, jako v tomto příkladu, pouze nuly a jedničky).
Výsledný obrázek: . Tady je, 20krát zvětšený:
Balíček Netpbm může například použít dva konverzní programy za sebou k převedení tohoto kódu na soubor BMP :
pgmtoppm "#FFFFFF" j.pbm > j.ppm ppmtobmp j.ppm > j.bmpV závislosti na rozpoznaném formátu souboru může přenosný systém souborů pixmap jednoduché grafiky rozlišovat mezi třemi podobnými formáty souborů, každý ve dvou verzích:
V každém případě nižší verze (P1, P2 nebo P3) odkazuje na formáty založené na ASCII čitelné člověkem podobné těm, které jsou uvedeny v příkladu v tomto článku. A horní verze (P4, P5 a P6) jsou binární formáty, které jsou méně analyzovatelné, ale efektivnější pro úsporu místa v souboru a lépe analyzovatelné kvůli nedostatku mezer.
Zpočátku binární formáty PGM a PPM (P5 a P6) podporovaly bitovou hloubku ne více než 8 bitů. Samozřejmě bylo možné použít formáty ASCII, ale jejich použití zvyšuje velikost a zpomaluje čtení souborů. V důsledku toho se mnoho vývojářů pokusilo rozšířit formát tak, aby podporoval větší bitovou hloubku. Při použití větší hloubky se potýkáme s problémem pořadí bajtů (Endianness) v souboru. Různé aplikace nejsou konzistentní v jedné endianness. Netpbm de facto používá při práci s PNM pořadí big-endian . P6 3 3 255 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Obrázek (zvětšený):
Formát P6 pro stejný obrázek uloží každou barevnou složku barvy do jednoho bajtu (tj. tři bajty na pixel). Soubor bude menší, ale informace o barvě při prohlížení takového souboru nebude osoba přímo vnímat:
P6 #možný řádek komentáře zde 3 2 255 !@#$%^&*()_+|{}:"<Formát PPM je nekomprimovaný, takže soubory v něm jsou velké. Například obrázek PNG 192 x 128 může mít velikost 552 bajtů. Po převodu na PPM bude velikost souboru 73 848 bajtů.
Formát PPM je dostatečně jednoduchý na to, abyste mohli napsat kód, který dokáže číst a zapisovat data v tomto formátu.
kontejnery na média | |
---|---|
Video/Audio | |
Zvuk | |
Hudba |
|
Rastrové | |
Vektor | |
Komplex |