Následující příspěvek je krátkým zamyšlením nad vykreslováním písem pomocí knihovny freetype za (či naopak) bez použití bytecode interpreteru.
Na diskuse na toto téma, resp. na téma vykreslování písem, jejich „tenkosti“ a použitelnosti toho či onoho nastavení povětšinou ve webových prohlížečích, jsem narazil už několikrát. I proto jsem se rozhodl, že si udělám malý test a jeho výsledky zde zveřejním.
Některé distribuce, možná většina, má tuto knihovnu zkompilovanou s aktivním bytecode interpreterem. Konkrétně vím o Debianu nebo Ubuntu. Ve Fedoře, pod kterou test proběhl, je v imlicitním nastavení tato knihovna zkompilována jednak bez bytecode interpreteru, ale také bez podpixelového vyhlazování. Důvodem je s největší pravděpodobností americký původ distribuce a možné obavy z následného vymáhání zde platných patentů.
Řešení je naštěstí velice prosté. Knihovnu zkompilujeme znovu ze zdrojového RPM balíčku – a to se jak s aktivním přepínačem bytecode interpreteru, tak podpixelového vyhlazování – následující postup platí pro Fedoru 8.
Předně je nutné mít nainstalovány balíky rpm-build a gcc nutné pro kompilaci a následné vytvoření RPM balíku. Dále potřebujeme stáhnout zdrojový balík freetype. Máme-li toto hotovo můžeme postoupit dále.
rpm -i freetype-2.3.5-3.fc8.src.rpm
rpmbuild -bb --with bytecode_interpreter --with subpixel_rendering\
/usr/src/redhat/SPECS/freetype.spec
rpm -i --force /usr/src/redhat/RPMS/i386/freetype-2.3.5-3.fc8.i386.rpm
Nyní by mělo být všechno připraveno. Přiznám se – já osobně jsem dosud ve Fedoře už od páté verze preferoval výchozí nastavení a nějakého „nepohodlí“ si nebyl vědom. Vlastně i v jiných distribucích (konkrétně v Debianu 4.0) jsem posléze vyžadoval nastavení právě takové, jak jsem byl zvyklý z Fedory. Ostatně nebylo příliš složité toho docílit.
Test probíhal při 96 DPI (na 19' LCD). Za střídavého použití freetype knihovny nejprve s aktivním bytecode interpreterem, podpixelovým vyhlazováním a plným hintingem (první test). A posléze ve výchozím nastavení, čili bez podpixelového vyhlazování a bytecode interpreteru, se středním hintingem a vyhlazováním ve stupních šedi (druhý test).
Jak už padlo výše, zmíněné diskuse se týkaly primárně písem ve webových prohlížečích, proto i můj test je zaměřen tímto směrem. Vybral jsem tři weby, které jsem v prohlížeči Firefox 2.0.0.13 zobrazil vždy v obou nastaveních. Rozdíly v zobrazení můžete posoudit právě dále.
Porovnáme-li úvodní stranu Root.cz v prvním testu s tou, zobrazenou v testu druhém, zjistíme, že rozdíl je minimální. Popravdě řečeno, v první moment mě napadlo, že jsem omylem udělal dvakrát stejný screenshot a až při bližším zkoumání jsem nalezl drobné odchylky ve vykreslování (dobře, při pohledu na hodiny je to jasné hned :-)).
Na mém osobním webu jsou rozdíly již mnohem markantnější. Zvláště u písmen „x“ a „k“, kde ona – zde jasně patrná – tenkost písma dosahuje svého minima – a stejně tak skoro hranice čitelnosti o estetickém dojmu nemluvě. Kontrast vůči druhému screenshotu, kde je písmo vcelku „zdravě syté“, je zjevný.
Třetí screenshot, jenž zobrazuje web FedoraForum.org, je podle mne nejvíce diskutabilní. Kdybych to měl v pár slovech shrnout, tak tam, kde v prvním testu je písmo nepřirozeně tenké, je v druhém zobrazeno korektně. A naopak, v prvním testu (zvláště u nadpisů) je způsob vykreslení přece jen o něco příjemnější pro oko, než jak je tomu v druhém.
Do určité míry mě překvapilo, jak malý rozdíl mezi jednotlivými nastaveními ve výsledku je (tedy alespoň co se týče zobrazených webových stránek. Kdyby byl test zaměřen na aplikace, bylo by třeba obsáhlejší zhodnocení), i přes značnou odlišnost nastavení nešel v případě Root.cz zaznamenat žádný podstatný rozdíl. Jinde sice už více, avšak meze „korektnosti“ byly překročeny jen málo nebo vůbec.
Trochu jsem si potvrdil věc, kterou jsem si myslel i předtím. A to, že málokterá záležitost nastavení je tak individuální jako právě tato a málokteré hodnocení proto může být tak subjektivní (prosím berte ho tak, pseudoobjektivita za každou cenu není to, o co se snažím). Verdikt pro mne je jasný, zůstanu u výchozího nastavení – bez bytecode interpreteru. Mimo jiné půjde i o zvyk. Spíše mě ale zajímá, jaké nastavení používáte vy a jakým směrem se proto vyvine anketa.
zajímavý článek. osobně ale vyhlazování nepoužívám, protože mi na LCD vadí, zvláště to subpixelové (nejlepší je je, když je obrázek s tímto "vyhlazováním" vytištěn v knize). moc dobře vypadají fonty od microsoftu (verdana, a monospace: andale mono, ale přešel jsem na lucidu typewriter). kdyby někdo věděl o lepší variantě, rád vyzkouším.
to [2]: Skutečně "vykompilovat" zní opravdu nevábně. Opraveno.
to [3]: Máte pravdu jpg není ideální. Až budu mít večer chvilku udělám novou sadu screenshotů.
to [5]: Nač ten ostrý tón? Lze to říci i bez emocí. Když se Vám článek nelíbí, škoda, ale je to Váš názor. Nemyslím však, že to zavdává důvod k vulgaritám.
debil je medicinsky vyraz oznacujuci cloveka s mentalnou retardaciou s IQ 50-69
http://sk.wikipedia.org/wiki/%C4%BDahk%C3%A1_du%C5%A1evn%C3%A1_zaostalos%C5%A5
Tady: http://www.pclinuxos.cz/index.php?option=com_content&task=view&id=51&Itemid=2 je článek na podobné téma.
Plním slib. Screenshoty ve formátu PNG jsou doplněny.
to [11]: Ta jedna možnost je tam spíš pro případ, že článek bude číst nějaký uživatel Fedory a bude chtít také lehce zaexperimentovat. Nemělo to být vyčerpávající pojednání o možnostech nastavení freetype. Ostatně o tom bylo napsáno dost, počínaje dokumentací.
Ale tak jako tak díky za názor.
Teda, to bys neměl takhle okatě na Rootu ukazovat, že si na jejich serveru blokuješ reklamy ;-)
Jinak mně se osobně nejvíc líbí vyhlazování, které je ve Fedoře standardně jako "nejlepší tvary". Podpixelové vyhazování je takové suché, stejně jako ve Windows.
Dost dobré vyhlazování má Apple - takové "ještě špinavější", ale pěkné :-)
to [15]: Hmm, pravda -> už jsem ho pro root vypnul. Je to jeden z webů, který si to nezaslouží.
Jinak k nastavení písma - úplně se shodneme. Také mi nejvíc vyhovuje toto nastavení.
Mj. docela by mě zajímalo, jak by weby na screenshotech vypadaly pod Vistou, pokud vím, tak k vykreslování písem přistupuje také trochu jinak, přímou zkušenost však zatím nemám.
Osobne hinting pouzivam a jsem naprosto spokojen.. pracuji na notebooku s pripojenym 2. LCD a k verzi bez hintingu bych se uz jen velmi nerad vracel... dokonce si kompiluju i veci jako Firefox apod., aby pouzivaly systemove cairo a spol. se zaptnutym hintingem. Asi zalezi dost i na pouzitem fontu, ne vsude jsou rozdily tak markantni (na mem systemovem Sans 7 je to znat dost :) )
este by som dodal, ze kym bold a nadpisy sa mi asi viac pacia s hintingom (ospravedlnujem sa za vyraz), tak prosty text sa mi zda citatelnejsi bez neho... ale nic nie je perfektne, takze :)
asi kazdy nech pouziva, co mu vyhovuje...
.
ad moj komentar c 11 -- skor som mal na mysli vykreslovanie pisiem pomocou freetype napr bez xservera do image-u :) myslel som, ze sa dozviem nejake prakticke info a skusenosti o tom :) ale i toto je celkom zaujimave... ;)
Pouzivam freetype2 knihovnu na rendering fontu (XServer-rendering vypnuty) nebot potrebuji popisky k SIKMYM caram. Ze zkusenosti muzu rici, ze ukazky SIKMEHO textu v pravouhlem pixelovem rastru by nejspis zmenily nazory na potrebu mit tam zaply kerning, hinting, atp.
Rendering fontu pro specialni pripady 0 a 90 stupnu dopada proste skvele i bez bytecode interpreteru, aliasingu, atp...
Student učitelství ICT na PedF UK se zájmem o open source, Python, Scratch, HTML5, výuku programování a mnoha dalších – ne IT – věcí, jako je hudba (Pink Floyd), literatura (G. Orwell) nebo film (S. Kubrick).
Přečteno 16 248×
Přečteno 15 888×
Přečteno 15 327×
Přečteno 13 261×
Přečteno 8 369×