Perché la trasparenza disabilita il rendering subpixel in Adobe Reader?


9

Di solito preferisco Adobe Reader (ancora v9 su Linux) a tutti gli altri visualizzatori di PDF perché penso che abbia la migliore qualità di rendering, anche se altri hanno raggiunto di recente. Questa qualità di rendering sembra essere in gran parte dovuta a CoolType, l'implementazione di Adobe del rendering subpixel. Sfortunatamente ho scoperto che Adobe Reader disattiva costantemente il rendering dei subpixel (su base per pagina) non appena la pagina contiene elementi trasparenti. Un esempio:

La forma blu è opaca, il testo è reso usando i subpixel:

opaco

La forma blu è trasparente al 50%, il testo è reso con antialias standard:

trasparente

I due file pdf corrispondenti sono stati generati esattamente allo stesso modo (usando TikZ / PGF con pdflatex), tranne per specificare la trasparenza nel secondo caso. Ho creato questi pdf da solo, ma ho spesso osservato lo stesso effetto con i pdf da fonti completamente diverse. Stranamente, Foxit Reader e Okular visualizzano gli stessi due pdf in modo esattamente identico (tranne ovviamente per la parte trasparente stessa), ma con un IMHO di qualità generalmente peggiore.

La mia domanda: qualcuno sa perché questo accada e se / come può essere evitato?


Questo potrebbe essere un bug in Adobe, meglio sollevato nei loro forum. Potresti provare a migliorare la visualizzazione dei caratteri in Linux (quale versione?) Usando Infinality . Vedi anche archlinux Font Configuration - Infinality .
harrymc,

@harrymc Dubito che ciò influisca sul rendering dei caratteri di Adobe Reader, ma per il resto è un suggerimento interessante. Forse Okular migliora così. Grazie!
A. Donda,

@slhck, pensavo di aver messo una taglia su questo? L'hai preso in qualche modo o sono solo confuso? Grazie lo stesso!
A. Donda,

Risposte:


1

Il rendering subpixel viene eseguito utilizzando i singoli colori di un pixel. Ogni pixel su uno schermo è costituito da un pixel ancora più piccolo con il colore rosso, verde e blu.

Se si desidera eseguire il rendering di un oggetto con una larghezza di 10,3 pixel, utilizzare solo il colore rosso dell'11 ° pixel. Lo schermo emetterebbe quindi luce da 31 subpixel, ovvero 10 pixel completi e quindi un terzo di pixel.

Se provi a simulare questo effetto da solo, semplicemente disegnando 10 pixel bianchi di larghezza, e quindi un pixel rosso a destra su uno sfondo nero, vedresti l'effetto da solo.

Il problema è che noteresti che il bordo destro sarebbe rosso, questo se lo facessi semplicemente in quel modo. Molto probabilmente, Adobe deve utilizzare algoritmi avanzati per annullare tale effetto, possibilmente amplificando il valore del rosso e del verde del decimo pixel.

L'aggiunta di trasparenza a un algoritmo che è già abbastanza avanzato è probabilmente qualcosa che non hanno ancora risolto e pertanto disabilitano semplicemente il rendering subpixel.

Credo che questo sia il caso, perché ho cercato di implementare il rendering dei subpixel in questo modo ingenuo e ho visto da solo l'effetto "lato colorato".


Sì, l'effetto del bordo colorato è sicuramente lì, puoi vederlo anche nelle schermate ingrandite sopra e non vedo davvero come si possa evitare. Penso che il rendering subpixel abbia senso solo quando tutti i pixel sono già piccoli. Forse hai ragione, è troppo complicato.
A. Donda,

Credo che siano troppo complicati. Altrimenti, la tecnologia non sarebbe degna di nomi così
belli

Solo una nota: l'ordine dei subpixel potrebbe non essere sempre RGB. Se guardiamo gli screenshot forniti dall'OP, sembra che sia stato ordinato BGR: i sottopixel sui bordi di sinistra sono rossi, mentre i sottopixel sui bordi di destra sono blu.
Johan Boulé,

0

Questo potrebbe essere un bug in Adobe, meglio sollevato nei loro forum.

Per migliorare la visualizzazione dei caratteri in Linux, potresti provare a usare Infinality:

Infinality è un insieme di patch Freetype che cercano di fornire un rendering dei font migliorato per Linux e, inoltre, per consentire una facile personalizzazione in modo che gli utenti possano adattare le impostazioni secondo i propri gusti. Usandolo, puoi facilmente impostare lo stile del carattere per emulare OSX, OSX2, Windows 98, Windows XP o Windows 7 oppure puoi usare gli stili "Linux" o "Infinality" (predefinito).

Vedi:

Migliore resa dei caratteri in Linux con Infinality
archlinux Configurazione dei caratteri - Infinality .


Apprezzo i suggerimenti e andrò a chiedere nei forum Adobe. Tuttavia, non penso che ciò si qualifichi come una risposta.
A. Donda,

Nessun problema. Vuoi che lo elimini?
harrymc,

No, volevo solo spiegare perché non ho votato.
A. Donda,

Sfortunatamente, questa sembra l'unica risposta che otterrai.
harrymc,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.