Programátoři z pekel zde za šat a stravu programují čipová pseuda. Nyní s favicon!

PNG2PoFo

V rámci příprav na natáčení dalšího el-Kástu (již brzy ve vašich iTunes) jsem se pokoušel vytvořit nějaké obrázky pro Atari Portfolio. Bohužel jsem zjistil, že pro tento jediný relativně úspěšný klon PC z produkce Atari je toho poskrovnu.My Spektristi jsme zvláštní ptáci: Valná část z nás už pochopila, že Unixové operační systémy jsou to pravé, a tak máme ty hlavní konverzní, pakovací a programátorské utilitky pohodlně dostupné právě v těchto systémech. Jelikož vícebitová Atari zavání Unixem, očekával bych že se tímto problémem už někdo zabýval.
Proto mě poněkud překvapil jediný dostupný český návod na převod obrázků do Portfolia. Náladu, do které jsem se po jeho přečtení dostal nejlépe podkreslila píseň I’m in shock od Fancyho a ještě než tato dohrála, měl jsem v ruce učebnici jazyka C a na obrazovkách gedit, konzoli a popis formátů PGF a PGC.

Po dvoudenním týrání mého VisualBASICem zblblého mozku jsem si osvěžil to málo, co jsem z jazyka C uměl a vznikl prográmek PNG2PoFo. Umí konvertovat obrázky ve formátu PNG o rozměru 240×64 s jednobitovou barevnou hloubkou do nekomprimovaného PGF i komprimovaného PGC.

Obrázek 01 - el-Kást

S použitím knihovny FreeImage byla PGF část triviální – knihovna obrázek vrací prakticky v témže formátu, v jakém je ho třeba zapsat do souboru, jen jsou mikrořádky seřazeny opačně. Taková trivialitka nezastaví ani lamera mého formátu, pokud si jí ovšem v dokumentaci všimne. V opačném případě totiž dojde k mírnému zdržení.

PGC se ukázalo být jako o něco zavilejší potvora, specifikace z roku 1991 je totiž psaná převážně s ohledem na autory depackeru. O to větší byla moje radost, když kreslící program spaint přímo na Portfoliu můj výplod bezchybně zobrazil. Radost netrvala dlouho – kromě spaintu je na Portfoliu již jen prográmek pgshow a ten při otevření PGC obrázku z mé produkce Portfolio uváděl do takového pseuda, že jediným řešením byl populární PC trojhmat.

Jak najít chybu? Dal jsem si tu práci a nainstaloval DOSBox a v něm spustil prográmek pgedit – myší ovládaný editor PGC obrázků vytvořený přímo autorem PGC specifikace. Obrázek z mého konvertoru šel otevřít, ale při opětovném uložení měl jinou (větší) velikost. Nezbylo než pomocí vbindiff porovnat hexa výpisy obou obrázků a následně si opravit nalezenou chybku ve zdrojáku. Chybka byla o to záludnější, že komprimovaný výstup v podstatě neodporoval specifikaci, jen nebyl maximálně efektivní a to z nějakého důvodu pgshow neuneslo.

Obrázek 02 - kytka

Zkoušel jsem překonvertovat několik různých obrázků a výstup je teď již naprosto stejný jako u obrázků načtených a znovu uložených v pgeditu, pgshow je zobrazuje bez problémů. Pokud máte o PNG2PoFo zájem, určitě se podívejte na jeho stránku na mém webu. Najdete tam zdrojáky a popis použití.