Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Audio, Video, Grafica...
Rispondi
Avatar utente
TonyB
Sr. Member
Sr. Member
Messaggi: 382
Iscritto il: 15/12/2007, 20:57

Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Messaggio da TonyB »

Salve a tutti,
da un paio di mesi è entrata in testing una nuova versione di libfreetype6, la 2.3.9, che abilita nativamente il sub-pixel rendering, una caratteristica che consente di migliorare molto la resa dei caratteri. Tuttavia, nonostante i fonts di Debian siano andati migliorando nel corso del tempo, a causa di problemi legati a brevetti software, siamo ancora lontani dai caratteri splendidi che hanno i Mac-user, i windowsiani o anche utenti di altre distro linux, meno aderenti di Debian allo spirito del free software oppure amanti del rischio. Tutto ciò impedisce ai maintainer di Debian di distribuire fonts con il massimo della resa,  ottenendo risultati solo discreti (ricordo che i fonts di Etch erano veramente pessimi rispetto a quelli standard di Lenny); noi utenti finali però, non dovendo ridistribuire software ad alcuno, possiamo fare un semplice passaggio per ottenere caratteri di gran lunga migliori, che rendono l' uso quotidiano della nostra debian-box un'esperienza più appagante.
Voglio condividere con voi questo piccolo hack.
Prima onore al merito: ho seguito la guida, debitamente aggiornata, di David Turner, sviluppatore freetype, che potete consultare a questo indirizzo:
http://quanli.googlepages.com/davidturn ... rdebiansid
Tutto ruota attorno a tre librerie: libfreetype6, libcairo2 e libxft2 che vanno patchate e ricompilate. Con la nuova versione delle libfreetype6 resa disponibile in testing, questo pacchetto non va più patchato, quindi il lavoro si semplifica.
Apriamo la console e partiamo; per prima cosa installiamo i pacchetti di sviluppo necessari:

Codice: Seleziona tutto

#aptitude install build-essential devscripts fakeroot
#apt-get build-dep libcairo2 libxft2
prima difficoltà, in squeeze il comando apt-get buildep libcairo2 restituisce un desolante:

Codice: Seleziona tutto

tony@debian:~$ sudo apt-get build-dep libcairo2
[sudo] password for tony:
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze
Lettura informazioni sullo stato... Fatto
E: Impossibile trovare un pacchetto sorgente per cairo
quindi all'atto della compilazione, se verrà chiesto un pacchetto mancante, lo installeremo; posso anticipare che io ho dovuto installare dpatch e libxt-dev, fatelo anche voi.
Adesso prepariamo il tutto e procediamo:

Codice: Seleziona tutto

$ mkdir cleartype && cd cleartype
$ mkdir patch debs
si tratta di directory che vengono create per comodità, ospiteranno i pacchetti debian e le patch.
Scarichiamo le patch a quest indirizzi:
http://quanli.googlepages.com/libcairo- ... -like.diff
http://quanli.googlepages.com/libxft-2. ... -like.diff
e mettiamole nella cartella patch.
Iniziamo con le cairo; sempre nella directory cleartype creata:

Codice: Seleziona tutto

$ mkdir libcairo2 && cd libcairo2
$ apt-get source cairo
$ cd cairo-1.8.6
$ dch -i
qui ci mettiamo quello che vogliamo, è il Changelog file, ad esempio "Applicate le partches di David Turner", servirà per generare una versione differente del pacchetto; chiudiamo (Ctrl-O +Invio) e usciamo (Ctrl+X).
Adesso applichiamo le patch e pacchettizziamo:

Codice: Seleziona tutto

$ patch -p1 <../../patch/libcairo-1.2.4-lcd-cleartype-like.diff
la patch verrà applicata al file  src/cairo-ft-font.c e vedremo una serie di "succeed line ... " segno che la patch è andata a buon segno.
Quindi:

Codice: Seleziona tutto

$ dpkg-buildpackage -rfakeroot -us -uc
dopo la compilazione, che si spera senza problemi, copiamo i pacchetti creati nella cartella debs:

Codice: Seleziona tutto

$cp ../libcairo2_1.8.6-2.1_amd64.deb ../../debs/
$cp ../libcairo2-dev_1.8.6-2.1_amd64.deb ../../debs/
Adesso le xft2; posizioniamoci nella cartella cleartype e partiamo:

Codice: Seleziona tutto

$ cd ../../
$ mkdir libxft2 && cd libxft2
$ apt-get source libxft2
$ cd xft-2.1.13
 
$ dch -i
Anche qui commento a piacere, poi ctrl+o, invio e ctrl+x.

Codice: Seleziona tutto

 
$ patch -p1 <../../patch/libxft-2.1.8.2-lcd-cleartype-like.diff

### Vedremo : patching file src/xftfreetype.c
### e patching file src/xftglyphs.c
### succeed line ...

$ dpkg-buildpackage -rfakeroot -us -uc

### dopo la compilazione

$ cp ../libxft2_2.1.13-3.1_amd64.deb  ../../debs/
$ cp ../libxft-dev_2.1.13-3.1_amd64.deb  ../../debs/
Fatto, adesso non ci resta che installare i pacchetti creati:

Codice: Seleziona tutto

$ cd ../../debs
# dpkg -i *.deb
Per ogni dimenticanza fate riferimento alla pagina linkata sopra.
Riconfiguriamo anche i fonts e la cache:

Codice: Seleziona tutto

#dpkg-reconfigure fontconfig-config
###Rispondete Autohinter, Sempre, NO
#dpkg-reconfigure fontconfig
Finito, riavviate X e osserverete la differenza.
Ne beneficeranno soprattutto le applicazioni gtk e qt3; le qt4 in maniera minima.
Fatemi sapere.

Edit: corretto l'errore segnalatomi da fabrixx
Ultima modifica di TonyB il 19/09/2009, 10:18, modificato 1 volta in totale.
Avatar utente
fabrixx
Hero Member
Hero Member
Messaggi: 1051
Iscritto il: 30/12/2006, 9:26

Re: Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Messaggio da fabrixx »

:D
Risultato ottimale grazie 1000, lo consiglio a tutti  :smilie:

Note: ho la debian 32 bit e andrebbe modificato il comando di copia in /deb di conseguenza con i386 (comunque li ho semplicemente  trascinati avendo i permessi).

Il comando cd ../../  mi rimanda al / magari può confondere l'utente meno esperto.

Ciao e grazie ancora.
Ultima modifica di fabrixx il 07/05/2009, 12:12, modificato 1 volta in totale.
[url=http://www.osside.net/]Osside blog[/url]
furly

Re: Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Messaggio da furly »

Leggo ora il post del font-man TonyB.
Stasera provo (anche se sono sicuro che funzionerà).
Grazie.
mm-barabba

Re: Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Messaggio da mm-barabba »

Risultato ottimale grazie 1000, uno spettacolo, lo consiglio a tutti
mi tocca provare  :biggrin:

stassera  riferirò anche la mia esperianza
Avatar utente
fabrixx
Hero Member
Hero Member
Messaggi: 1051
Iscritto il: 30/12/2006, 9:26

Re: Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Messaggio da fabrixx »

Ha senso farlo su ubuntu 9.04 che ho sul fisso li i caratteri mi sembrano molto arrotondati?
[url=http://www.osside.net/]Osside blog[/url]
Avatar utente
TonyB
Sr. Member
Sr. Member
Messaggi: 382
Iscritto il: 15/12/2007, 20:57

Re: Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Messaggio da TonyB »

No, Ubuntu è una di quelle distribuzioni "temerarie" che applica di default quelle patches ai propri pacchetti e li distribuisce.
Già dalla Hardy Heron, se non sbaglio.
Ciao.
Avatar utente
Underpass
Hero Member
Hero Member
Messaggi: 769
Iscritto il: 09/08/2006, 2:09
Contatta:

Re: Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Messaggio da Underpass »

Grazie! Funziona bene! Caffè pagato! :D

Però proprio il mio amato Firefox fa un po' le bizze con questi font...

Ciao
Ultima modifica di Underpass il 08/05/2009, 18:44, modificato 1 volta in totale.
Materia: contrasta i tentativi di mutazione operati dal Tempo, resiste agli attacchi dell'Energia, costringe il Pensiero a divenire pratico.
Avatar utente
TonyB
Sr. Member
Sr. Member
Messaggi: 382
Iscritto il: 15/12/2007, 20:57

Re: Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Messaggio da TonyB »

Bene, contento che vi piaccia.
Firef...ehmmm...iceweasel da problemi? Strano, mai avuti. Forse dipende da qualche altra cosa.
Ciao.
Avatar utente
fabrixx
Hero Member
Hero Member
Messaggi: 1051
Iscritto il: 30/12/2006, 9:26

Re: Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Messaggio da fabrixx »

Io li ho provati sul portatile. Firefox e nautilus mi sembrano ok, l'unica cosa che ho notato sono i caratteri di thunderbird, specialmente quelli in grassetto sono molto piu grandi di prima ma non mi dispiace  :smilie:
[url=http://www.osside.net/]Osside blog[/url]
furly

Re: Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Messaggio da furly »

Bene su Squeeze, la resa è di molto migliore.
Domande:
1. su Lenny è possibile applicare tutto il procedimento?
2. su Lenny virtualizzata che ho al lavoro, il pacchetto libfreetype6 prelevato da squeeze (2.3.9 mi sembra)
viene installato senza problemi. La resa migliora qualcosa anche senza applicare le patch oppure no?
Grazie.
Avatar utente
TonyB
Sr. Member
Sr. Member
Messaggi: 382
Iscritto il: 15/12/2007, 20:57

Re: Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Messaggio da TonyB »

Ciao,
se usi la libfreetype6 di Squeeze su Lenny, non c'è bisogno di patcharla.
Su Lenny c'è la 2.3.7 e va patchata, anche se è facile farlo.
Basta creare un file di diff e chiamarlo ad es. sub_pixel_rendering (lo conservo ancora) col seguente contenuto:

Codice: Seleziona tutto

--- freetype-2.3.7/include/freetype/config/ftoption.h   2009-02-24 16:39:01.000000000 +0100
+++ freetype-2.3.7/include/freetype/config/ftoption.h   2009-02-24 16:40:36.000000000 +0100
@@ -92,7 +92,7 @@
   /* This is done to allow FreeType clients to run unmodified, forcing     */
   /* them to display normal gray-level anti-aliased glyphs.                */
   /*                                                                       */
-/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
+#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING


   /*************************************************************************/
metterlo in debian/patches-freetype ed aggiungere in coda al file series la riga sub_pixel_rendering, il che porterà all'applicazione automatica della patch che abbiamo creato.
Le libxft2 e libcairo vanno sempre patchate. Il miglioramento è lo stesso.
Saluti.
furly

Re: Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Messaggio da furly »

Ok, ok, avevi già specificato che non serviva patchare la versione 2.3.9.

Volevo sapere se installando solo la nuova libreria freetype6 di Squeeze senza
patchare libxft e libcairo di Lenny la situazione migliora di qualcosa (alla già buona resa
dei fonts su Lenny)...
Avatar utente
TonyB
Sr. Member
Sr. Member
Messaggi: 382
Iscritto il: 15/12/2007, 20:57

Re: Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Messaggio da TonyB »

Sì, migliorano ma leggermente, nel senso che la cosa la percepisci ad occhio, non è una grandezza misurabile oggettivamente; viene attivato il sub-pixel rendering, anche se solo in modalità toni di grigio.
Ciao.
Ultima modifica di TonyB il 29/05/2009, 13:25, modificato 1 volta in totale.
furly

Re: Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Messaggio da furly »

Ok. Grazie.

Chiedo venia se vado un po' OT (ma poi neanche tanto, in quanto 'sta storia dei fonts, mi prende...):
volendo fare il percorso inverso, cioè rimpicciolire i caratteri evitando di utilizzare l'antialiasing,
un po' come la vecchia visualizzazione di Windows senza cleartype, queste patch servono?
Avatar utente
TonyB
Sr. Member
Sr. Member
Messaggi: 382
Iscritto il: 15/12/2007, 20:57

Re: Migliorare drasticamente la resa dei caratteri (lunghissimo...)

Messaggio da TonyB »

Anche se piccoli, i caratteri così trattati sono sempre più piacevoli di quelli grezzi. Se poi vuoi il rendimento di Windows senza cleartype, allora no, non servono, perchè vanno nella direzione contraria.
Ciao.
Rispondi