Portál AbcLinuxu, 2. května 2025 05:40

ACBF - finalizacia specifikacii a textova vrstva

10.4.2012 21:19 | Přečteno: 1162× | ACBF | Výběrový blog | poslední úprava: 10.4.2012 21:23

Nazdar lidi,

ako som avizoval 1. aprila (to nebol aprilovy zart) som vydal finalnu verziu specifikacii pre ACBF - Advanced Comic Book Format. A kedze teraz cez sviatky bolo trochu viac casu, tak som do prehliadaca (ACBF Viewer) doprogramoval vykreslovanie textovej vrstvy. Pre tych, ktory necitali moj predosly blog, kde som ACBF predstavil, mozu mrknut sem.

Ako som uz pisal minule, specifikacie formatu definuju pre komix samostatnu graficku vrstvu (podkladovy obrazok) a samostatnu (optional) vrstvu pre text. Textovych vrstiev moze byt v jednom dokumente viacej, t.j. samostatna vrstva pre kazdy jazyk (preklad).

Kedze sa v specifikaciach nedefinuje presne vysadzanie textu (pozicia, font), definuju sa len obrysy bublin a text v nich, predpoklada sa, ze vtesnanie daneho textu do vymedzenej bubliny bude zabezpecovat/vypocitavat aplikacia/prehliadac. Na danom texte, pri vytvarani ACBF dokumentu, mozno specifikovat iba semantiku, napr. zvyraznenie (tag <emphasis>), zvolanie/krik (<strong>), pocitacovy kod alebo roboticky hlas (<code>) a podobne. Samotny font, ktorym sa dany text bude vykreslovat definuje aplikacia, prip. uzivatel v nastaveniach. V buducnosti do specifikacii mozno (ak sa mi bude chciet, prip. sa bude chciet niekomu inemu :-) 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.

metadata

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

metadata

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.        

Hodnocení: 100 %

        špatnédobré        

Obrázky

ACBF - finalizacia specifikacii a textova vrstva, obrázek 1 ACBF - finalizacia specifikacii a textova vrstva, obrázek 2

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

10.4.2012 22:00 __dark__
Rozbalit Rozbalit vše Re: ACBF - finalizacia specifikacii a textova vrstva
Odpovědět | Sbalit | Link | Blokovat | Admin
Co se tyce layoutu tak docela dobry zapisek je tento: http://doc.qt.nokia.com/qq/qq24-textlayouts.html
GeoRW avatar 11.4.2012 07:13 GeoRW | skóre: 13 | blog: GeoRW | Bratislava
Rozbalit Rozbalit vše Re: ACBF - finalizacia specifikacii a textova vrstva
skoda, ze to je v QT. Moc tomu nerozumiem :-) 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.
"This is to be taken with a grain of salt." ACBF - Advanced Comic Book Format
17.4.2012 20:15 Martin Doucha | skóre: 23 | blog: Yet another blog
Rozbalit Rozbalit vše Re: ACBF - finalizacia specifikacii a textova vrstva

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

Migi avatar 11.4.2012 07:28 Migi | skóre: 59 | blog: Mig_Alley
Rozbalit Rozbalit vše Re: ACBF - finalizacia specifikacii a textova vrstva
Odpovědět | Sbalit | Link | Blokovat | Admin
a to na to vážně potřebujem další prohlížeč? Kvuli obrazkum s textem? Editor bych pochopil, ale prohlížeč?
GeoRW avatar 11.4.2012 10:17 GeoRW | skóre: 13 | blog: GeoRW | Bratislava
Rozbalit Rozbalit vše Re: ACBF - finalizacia specifikacii a textova vrstva
nie je to len o obrazkoch s textom, viz. minuly blog. Komixovy format obsahuje aj mnozstvo metadat (nad nimi sa da postavit kniznica napr.), ci napr. indexovanie stranok (na tvorbu obsahu), definovanie jednotlivych ramcov na stranke komixu (a moznosti zazoomovat na uroven ramca) a pod. Tento blog pojednava cisto iba o vykreslovani textovej vrstvy.
"This is to be taken with a grain of salt." ACBF - Advanced Comic Book Format

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.