> Na PCX je jasně patrná nekoncepčnost návrhu a závislost prvních verzí tohoto formátu na použitých grafických kartách, resp. jejich videorežimech.
Ono to sice z dnešního pohledu vypadá jako nekoncepčnost, ale v době vzniku byla právě koncepce v tom, že se minimalizovala doba mezi načtením z disku a projekcí do videoram. Tehdy editory ani žádný buffer nepoužíval (leda na undo) a rovnou se dělalo s videoram.
Jinak PCX byl ve své době natolik oblíbeným a rozšířeným formátem, jako je dnes třeba JPEG. Je zajímavé (a to platí nejen pro grafické formáty) že masovou oblibu si obvykle nezískávají ty technicky vyspělé řešení, ale spíš jejich protějšky...
Ano, pamatuji si nejaky stary graficky editor (Dr. Genius???), kde bylo videt nacitani obrazku po jednotlivych bitovych rovinach :-) Jestli je v tom koncepce moc nevim (spis ad-hoc reseni), takto nelze ani udelat poradne UNDO nebo vic obrazku. A ty zvladal uz staricky Design Master na osmibitovych Atarkach s 64kB RAM!
Na celou vec se muzeme divat ze dvou pohledu:
1. pohled ZSoft corporation
- udelala format, ktery je mozne rychle nacist, ovsem pouze v pripade, ze se editor prepne do daneho grafickeho formatu (tj. na SVGA si PaintBrush spustite v CGAckovskem 320x200x4 - milost ocickam :-)
- s kazdou novou grafickou kartou (od IBM) se PCX musel upravit, nejvic viditelne je to v pripade 256 barev - ale opet si tu firma dela pro sebe, takze celkem OK (viz jine dneska rozsirene binarni formaty)
2. pohled ostatnich nekolika miliard lidi
- format docela silene navrzeny, pro kazdou bitovou hloubku se musi totalne zmenit nacitaci/ukladaci smycka (pokud ne, kde je ta proklamovana rychlost?)
- barevna paleta - problem s nacitanim, spousta moznosti, kde paleta byt muze ci nemuze byt ulozena
- pres vsechny nejasnosti ve formatu se kupodivu dari soubory PCX nacitat i ukladat
S tim poslednim odstavcem mate naprostou pravdu - proste o hodne vecech nerozhoduji technicka kriteria ale reklama/marketing apod. Nebo (v pripade uspechu MS ci Borlandu) prosta nahoda nebo podvudek.
...no jde o to, že ZSoft corporation nenavrhoval univerzální otevřený formát, ale nativní formát pro svou aplikaci. Byl optimalizován pro obě videokarty - CGA a EGA - a o kartách VGA se v té době teprve šuškalo :-))
Bezva, tak si ten nazev po tech letech precejen pamatuju. Urcite to byl SW dodavany k nejakym myskam - v podniku se jedna takova koupila (snad GM 2 - takova hranata se tremi tlacitky co vydrzela i politi vinem) a vsichni vesele kreslili :-)
Ja taky ZSoftu nic moc nevycitam (ostatne budiz jim zeme lehka), problem nastal, kdyz se zacal PCX rozsirovat - jak mezi uzivatele (vice aplikaci), tak i co do podpory lepsich videorezimu. Mimochodem, v dobe CGAcek a EGA uz dlouho byla na Amigach hi-color grafika, takze se prechod k vice barvam dal predpokladat.
Ale jo, vyrobce si pamatuju (Logitech to taky neni :-), jen ne ten typ si nemuzu vzpomenout. Proste hranata nazloutla mys s tremi sedymi tlacitky a obligatnim prepinacem naspodku, dokonce jsem nasel i jeji obrazky:
Tohle jsou ty nejlepsi kulickove (neopticke) mysli na svete, co jsem kdy potkal. Mel jsem ji u sve prvni 286tky, pak jsem ji naivne prodal a hodne dlouho jsem toho litoval ...
Dnes toho uz tak nelituji :-) a v XF86Configu ji prislusi radek
Option "Protocol" "MouseSystems"
... kdyby nekdo mel nejakou zbytecnou, kterou chce vyhodit, tak o ni mam zajem.
(muj mail je rm-rf na ceskem seznamu)
Výrobce byla firma KYE. V té době se myš dodávala i s podložkou a grafickým editorem. Jo, kdybych dneska dostal k MX1000 v ceně PhotoShop, nezlobil bych se ;)
Mimochodem, ta myš byla držák, vydržela spolehlivě fungovat leta. Po ní přišlo období levných zmetků a člověk jen vzpomínal na starý dobrý MouseSystems. Naštěstí dnes už je zase jiná doba a za pár stovek se dá koupit relativně spolehlivá myš (Logitech).
Nebo k MX1000 dosovsky Dr. Genius bezici v rezimu CGA :-)
Ano, ta mys toho vydrzela strasne moc, i politi bilym vinem (podnikova oslava :-). Sice trosku lepila a radeji jsem nezkoumal, jak to vypada vevnitr, ale fungovala porad skvele.
Zajimalo by mne, jestli bude popsan take format pouzivany na Amize IFF ILBM.
Uzil jsem si dost s rypanim obrazku z RAM po resetu pomoci beermonu :-) Myslim, ze to byl slusne vymysleny format. Hlavne by mne zajimalo porovnani s PNG.
Jak to čtu, tak to spíš připomíná pcx: rle komprese, data organizovaná podle hw módů. Formát IFF je ovšem rozhodně inteligentněji navržený než pcx. http://en.wikipedia.org/wiki/ILBM
Ze PCX umi i vice nez 16 barev, to jsem netusil. Opustil jsem ho v dobe Windows 3.1 a tenkrat si myslim, ze 16 barev bylo maximum.
Autor v clanku rozebira, jak to bylo s PCX, ktery mel 16 barev, ale nemel v sobe uvedenou barevnou paletu. Ja jako laik bych v takovem pripade predpokladal "klasickych" 16 barev, ktere se daly pouzivat napriklad v Pascalu. 0-7 tmave, 8-15 svetle, v napovede k Pascalu pisou: black, blue, green, cyan, red, magenta, brown, light gray, dark gray, light blue, light green, light cyan, light red, light magenta, yellow, white. V podstate to cislo 0-15 jsou bity IRGB.
Taky bych cekal standardni barvovou paletu (tu nedelal Pascal, ale BIOS pri nahazovani grafickych rezimu EGA ci VGA). Overit to vsak nemuzu, zadny originalni obrazek bez palety nemam, ale v minimalne dvou dokumentech se ta "defaultni PCX" paleta objevuje - mozna od sebe autori opisovali :-)
Ale i ta upravena paleta ma nejaky smysl, na prvnich dvou pozicich nejkontrastnejsi barvy mozna souvisi s GUI PC-PaintBrushu (protoze v 16 barvach se zmena palety projevi jak na obrazku, tak i na GUI).
Osobně jsem pracoval až s 256-ti barevnými PCXy pod 13h módem, ale jsem přesvědčen, že barva 1 by měla být modrá. V době kdy jsme si uživali celých 16 barev, jsme si nemohli dovolit mít dvě bílé....
k tem poznamkam o nevhodnem navrhu ruznych grafickych formatu (krome dnesniho pcx drive treba bmp) bych rad poznamenal, ze je potreba brat v uvahu dobu jejich vzniku, tehdejsi pozadavky/moznosti a cilovou oblast pouziti. jasne, ze jsou na dnesni dobu trochu mimo, ale ... vy vite co myslim.
Ahoj pri praktickem testu jsem zjistil, ze kontanta 0xC0 clanku v 6.kapitole mi nefunguje. Ve zdrojacich je konstanata 0x0C se kterou to bezi jak ma. Zajimave je ze jsem na netu nasel taky pouziti asi spatne kontanty 0xc0. Vsechny obrazky co se mi zatim dostaly do ruky maji konstantu nastavenou na 0x0C. Dejte si na to bacha pri prakticke implementaci. Samozrejmne dik moc za clanek(a hlavne zdrojaky), usetril mi tak tyden prace.