Portál AbcLinuxu, 8. prosince 2025 13:48
pribudne aj definovanie stylov (prip. aj zahrnutie samotnych fontov) priamo v XML dokumente.
Co sa tyka vykreslovania textu do danej bubliny, zbuchal som algoritmus, ktory toto zabezpecuje. Nie je uplne dokonaly (da sa este vylepsovat), ale svoju pracu spravi IMHO celkom dobre a pomerne rychlo (funguje docela svizne aj na mojom malom PDA-cku). Vysledky mozte mrknut na nasledujucich obrazkoch.
Co sa tyka nastaveni, uzivatel moze v prehliadaci zatial definovat fonty pre normal/default pismo a pre zvyraznenie (v dokumente tag <emphasis>). Na obrazkoch pre normalne pismo je pouzity DejaVuSans a pre zvyraznene pismo DejaVuSans-BoldOblique. Skusal som rozne fonty a prehliadac si poradil zatial so vsetkym (okrem fontov, ktore neobsahuju vsetky znaky slovenciny).
Keby niekto nevedel, textove vrstvy sa v prehliadaci prepinaju na toolbare uplne vpravo hore. Pri anglickej vrstve ("en") sa vykresli iba obrazok na pozadi, textova vrstva sa ponadto neprekresluje, takze to pismo je original z daneho komixu. Pri slovenskej vrstve ("sk") prehliadac najskor ponad obrazok na pozadi nakresli polygon (obrysy danej bubliny vyplnene specifikovanou farbou) a nadto vykresli samotny text.
Instalator pre Linux aj Widle ako aj specifikacie, XML schema a niekolko ukazkovych komixov (prekladovu slovensku textovu vrstvu ma iba comix Craphound) je mozne najst na strankach projektu. Akekolvek pripomienky, hlasenie bugov a pod. su vitane
Ak by sa prip. niekto chcel pustit do prekladu nejakeho komixu a nevedel ako nato (napr. vytvaranie XML tagov pre jednotlive bubliny v Inkscape a nasledna koverzia do ACBF), mozem poradit. Mam v plane napisat aj nejake HOW-TO o tom v buducnosti.
Tiskni
Sdílej:
Inak som chcel, aby ten algoritmus bol nezavisly od frameworku kvoli lahsej portovatelnosti. User interface je robeny v GTK ale core veci su python + dalsie pythonie kniznice: Python Imaging Library, lxml.
QTextLayout toho zrovna moc neumí. Například když člověk sází do tvaru, ve kterém řádky nemají stejnou šířku, tak se nedá nějak rozumně udělat jiné vertikální zarovnání než nahoru. Jediná rozumná možnost pro zarovnání dolů nebo na střed je zkoušet hrubou silou tak dlouho, dokud to nevyjde. Nebo si napsat něco chytřejšího sám (což mám pro svoje potřeby v plánu).
Mimochodem, příklad v tom odkazu je blbě. Jednak vůbec nebere v potaz koncové body jednotlivých úseček, takže při hodně malém sklonu od horizontální roviny a větší délce úsečky může text vyběhnout ven z tvaru, a jednak se dají najít tvary, kde tenhle příklad kus textu vysází úplně mimo ten tvar a kus dovnitř (třeba pěticípá hvězda otočená špičkou dolů, kus textu se vysází mezi horní dva cípy).
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.