Por que a transparência desativa a renderização de subpixel no Adobe Reader?

9

Eu normalmente prefiro o Adobe Reader (ainda v9 no Linux) para todos os outros visualizadores de PDF, porque eu acho que ele tem a melhor qualidade de renderização, mesmo que os outros tenham captado ultimamente. Essa qualidade de renderização parece ser em grande parte devido ao CoolType, a implementação da renderização de subpixel da Adobe. Infelizmente, descobri que o Adobe Reader alterna constantemente a renderização de subpixels (em uma base por página) assim que a página contém elementos transparentes. Um exemplo:

A forma azul é opaca, o texto é renderizado usando subpixels:

Aformaazulé50%transparente,otextoérenderizadocomoantialiasingpadrão:

Os dois arquivos pdf correspondentes foram gerados exatamente da mesma maneira (usando TikZ / PGF com pdflatex), exceto para especificar transparência no segundo caso. Eu mesmo fiz esses pdfs, mas tenho freqüentemente observado o mesmo efeito com pdfs de fontes completamente diferentes. Estranhamente, o Foxit Reader e o Okular renderizam os mesmos dois pdfs de uma maneira exatamente idêntica (exceto, é claro, para a parte transparente em si), mas em uma IMHO de qualidade geralmente pior.

Minha pergunta: Alguém sabe por que isso acontece e se / como isso pode ser evitado?

    
por A. Donda 17.11.2013 / 19:49

2 respostas

1

A renderização de subpixel é feita usando as cores individuais de um pixel. Cada pixel em uma tela é composto por um pixel ainda menor com a cor vermelha, verde e azul.

Se você deseja renderizar um objeto com 10,3 pixels de largura, você usaria apenas a cor vermelha do 11º pixel. A tela então emitia luz de 31 subpixels, ou seja, 10 pixels completos e, em seguida, um terço de um pixel.

Se você tentar simular esse efeito sozinho, simplesmente desenhando 10 pixels brancos de largura e, em seguida, um pixel vermelho à direita em um plano de fundo preto, você verá o efeito sozinho.

O problema é que você notaria que a borda direita estaria vermelha, isto se você simplesmente fizer dessa maneira. Provavelmente, a Adobe precisa usar algoritmos avançados para cancelar esse efeito - possivelmente amplificando o valor do vermelho e do verde do décimo pixel.

Adicionar transparência a um algoritmo já bastante avançado é provavelmente algo que ainda não foram resolvidos e, portanto, eles simplesmente desabilitam a renderização de subpixel.

Acredito que este seja o caso, porque eu tentei implementar o subpixel renderizando-me dessa forma ingênua e vi esse efeito "lado colorido" eu mesmo.

    
por 08.01.2014 / 08:58
0

Isso pode ser um bug na Adobe, melhor levantado em seus fóruns.

Para melhorar a exibição de fontes no Linux, você pode tentar usar Infinality:

Infinality is a set of Freetype patches that try to provide an improved font rendering for Linux and also, to allow easy customization so the users can adjust the settings to their taste. Using it, you can easily set the font style to emulate OSX, OSX2, Windows 98, WIndows XP or Windows 7 or you can use the "Linux" or "Infinality" (default) styles.

Veja:

Melhor renderização de fontes no Linux com infinalidade
Configuração da fonte archlinux - Infinalidade .

    
por 10.12.2013 / 18:46