Přenosný anymap

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 23. února 2020; ověření vyžaduje 1 úpravu .
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 . 

Popis formátu souboru

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

Použití v Netpbm

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.bmp

V 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.

16bitové rozšíření

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

Příklad PPM

P3 # P3 znamená, že barvy jsou v ASCII, # následované čísly udávajícími počet sloupců a řádků (3 sloupce a 2 řádky), #255 pro maximální hodnotu barvy, # pak trojice RGB 3 2 255 255 0 0 0 255 0 0 0 255 255 255 0 255 255 255 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.

Viz také

Odkazy

  1. FILE NAME // Formát PNM