Výměna obrázků
| Příjmení | PCX |
| zkratka | PCX |
| přípona souboru | .pcx |
| Výrobce | ZSoft, 1982 |
| Barevný prostor | Monochromatická paleta ve stupních šedi RGB |
| Barevná hloubka | 1 bit - 2 barvy 4 bit - 16 barev 8 bit - 256 barev 24 bit - 16,7 milionu |
| komprese | bez RLE (bezztrátový) |
| Byte order | Malý Endian |
Picture exchange ( PCX ) je formát souboru pro ukládání obrazových dat .
Formát PCX byl vyvinut v roce 1982 společností ZSoft a použit ve vlastních produktech Paintbrush a FRIEZE (rezidentní pomocný program pro import obrázků z jiných aplikací, např. Lotus 1-2-3 ). Dnes je formát sotva podporován většinou grafických programů .
V době vývoje PCX byly k dispozici pouze grafické adaptéry Hercules a CGA . V průběhu let se grafické karty zlepšily a objevily se nové grafické režimy ( EGA , MCGA, VGA ). Ty pak byly pokryty novějšími verzemi formátu PCX. Změny definice formátu byly v zásadě omezeny na paletu barev.
Struktura souboru PCX
obecná struktura
| Záhlaví (128 bajtů) |
| Obrazová data |
| Paleta barev (volitelná, pouze s 256 barvami) |
Záhlaví
Bez ohledu na verzi mají soubory PCX záhlaví 128 bajtů.
| Ofset | Bajty | důležitost |
|---|---|---|
| 0 | 1 | Identifikace: 10 (0A hex ) = soubor PCX |
| 1 | 1 | Verze souboru PCX: 0 = verze 2.5 2 = verze 2.8 s paletou 3 = verze 2.8 bez palety 4 = okna bez palety 5 = verze 3.0 |
| 2 | 1 | Komprese 0 = žádná 1 = kódování RLE |
| 3 | 1 | Bitů na pixel (nebo na rovinu) |
| 4. místo | 8. | Souřadnice původního obrázku XMIN, YMIN, XMAX, YMAX |
| 12 | 2 | horizontální rozlišení v DPI (body na palec) |
| 14 | 2 | vertikální rozlišení v DPI (body na palec) |
| 16 | 48 | Barevná mapa s definicí palety barev. Organizováno jako 16 * 3 bajtové pole. |
| 64 | 1 | Rezervováno |
| 65 | 1 | Počet úrovní barev (rovin), max |
| 66 | 2 | Bajty na řádek obrázku (sudé číslo) |
| 68 | 2 | Informace o paletě 1 = Barva - ČB 2 = Stupně šedi |
| 70 | 2 | Šířka obrazovky v pixelech |
| 72 | 2 | Výška obrazovky v pixelech |
| 74 | 54 | Prázdné bajty k vyplnění záhlaví |
Obrazová data
Bez komprese je každý barevný bajt indexem (odkazem) na barevnou paletu. Při kompresi jsou také možné délkové bajty, které určují, jak často se má opakovat následující barevný bajt ( kódování délky běhu ). Komprese je proto zvláště účinná u grafiky s velkými jednobarevnými plochami. Bajty délky jsou rozpoznány podle skutečnosti, že jsou nastaveny jejich dva nejvyšší bity. Zbývající bity se používají k určení délky, takže maximální délka, kterou lze zadat, je 63 bajtů. Jednotlivé barevné bajty lze zadat přímo. Musí být uvedeny pouze s předchozím bajtem délky s hodnotou 193, pokud je jejich hodnota 192 nebo více, jinak by byly interpretovány jako bajt délky.
Paleta barev
Barevné palety s více než 16 barvami jsou uvedeny za obrazovými daty. V tomto případě se mezi obrazová data a paletu vloží bajt s hodnotou 12. Poté následují tři barevné bajty pro hodnotu RGB pro každý barevný index .
Barevné roviny
Zvláštností formátu PCX je ukládání obrazových dat v barevných rovinách. Kódující pořadí je osa Y> barva rovina> X-ose . To je na jedné straně způsobeno skutečností, že PCX (na rozdíl od BMP ) je formát související s hardwarem, který představuje (komprimovaný) obraz paměti obrazovky, a na druhé straně, že obrázky Truecolor nebo obrázky s dithering lze lépe komprimovat pomocí kódování délky běhu.
Podle oficiálního standardu PCX se „běhy“ RLE mohou rozšířit na několik barevných úrovní, ale některé dekodéry to nepodporují. Kvůli dobré kompatibilitě by se tomu kodéry měli vyhnout, zatímco dekodéry by to měly podporovat. Běhy nikdy nemohou překlenout více řádků.
Běžné formáty
| Barevná hloubka | Bitů na úroveň | Úrovně | sekvence | původ |
|---|---|---|---|---|
| 1 (2 barvy) | 1 | 1 | - | MDA / Hercules monochromatický |
| 2 (4 barvy) * | 2 | 1 | - | Barevný režim CGA 4 |
| 4 (16 barev) | 1 | 4. místo | Modrozelená-červená intenzita ** | 16barevný režim EGA |
| 8 (256 barev) | 8. | 1 | Paleta: červeno-zeleno-modrá | Barevný režim VGA 256 |
| 24 (truecolor) | 8. | 3 | Červeno-zeleno-modrá | Žádné *** |
Poznámky
* 2bitový barevný režim byl zastaralý a standard již není oficiálně podporován.
** Ve skutečnosti určuje paleta, ale toto uspořádání je nejběžnější.
*** Běžné grafické karty používají sekvenci modro-zeleno-červenou a zobrazují pixely jako 32bitové bloky.
literatura
- Thomas W. Lipp: Grafické formáty. Microsoft Press, Unterschleißheim 1997, ISBN 3-86063-391-0
- Günter Born: Referenční formáty ručních souborů. Addison-Wesley, Bonn 1997, ISBN 3-8273-1241-8
Individuální důkazy
- ↑ Soubor MARBLES.PCX je příkladem běhů přes několik barevných úrovní: https://www.fileformat.info/format/pcx/sample/index.htm