Zwykle wolę Adobe Reader (nadal v9 w systemie Linux) od wszystkich innych przeglądarek PDF, ponieważ myślę, że ma najlepszą jakość renderowania, nawet jeśli inni ostatnio nadrobili zaległości. Ta jakość renderowania wydaje się być w dużej mierze spowodowana CoolType, implementacją renderowania subpikseli przez Adobe. Niestety odkryłem, że Adobe Reader konsekwentnie wyłącza renderowanie subpikseli (dla poszczególnych stron), gdy tylko strona zawiera przezroczyste elementy. Przykład:
Niebieski kształt jest nieprzezroczysty, tekst jest renderowany przy użyciu subpikseli:
Niebieski kształt jest w 50% przezroczysty, tekst jest renderowany ze standardowym wygładzaniem krawędzi:
Dwa odpowiadające pliki pdf zostały wygenerowane dokładnie w ten sam sposób (przy użyciu TikZ / PGF z pdflatex), z wyjątkiem określenia przezroczystości w drugim przypadku. Zrobiłem te pliki PDF sam, ale często obserwowałem ten sam efekt z plikami PDF z zupełnie innych źródeł. O dziwo, Foxit Reader i Okular renderują te same pliki pdf w dokładnie identyczny sposób (z wyjątkiem oczywiście samej przezroczystej części), ale z ogólnie gorszą jakością IMHO.
Moje pytanie: Czy ktoś wie, dlaczego tak się dzieje i czy / jak można tego uniknąć?
źródło
Odpowiedzi:
Renderowanie subpikseli odbywa się za pomocą poszczególnych kolorów piksela. Każdy piksel na ekranie składa się z jeszcze mniejszego piksela w kolorze czerwonym, zielonym i niebieskim.
Jeśli chcesz renderować obiekt o szerokości 10,3 pikseli, użyjesz tylko czerwonego koloru 11 piksela. Ekran emitowałby wówczas światło z 31 subpikseli, czyli 10 pełnych pikseli, a następnie jedna trzecia piksela.
Jeśli spróbujesz sam zasymulować ten efekt, po prostu rysując 10 białych pikseli szerokości, a następnie czerwony piksel po prawej stronie na czarnym tle, sam zobaczysz efekt.
Problem polega na tym, że zauważysz, że prawa krawędź będzie czerwona, jeśli zrobisz to w ten sposób. Najprawdopodobniej Adobe musi użyć zaawansowanych algorytmów, aby wyeliminować ten efekt - być może poprzez zwiększenie wartości czerwonego i zielonego 10-tego piksela.
Dodanie przezroczystości do algorytmu, który jest już dość zaawansowany, jest prawdopodobnie czymś, czego jeszcze nie rozwiązali, dlatego po prostu wyłączają renderowanie subpikseli.
Wydaje mi się, że tak jest, ponieważ próbowałem zaimplementować renderowanie subpikseli w ten naiwny sposób i sam widziałem efekt „kolorowej strony”.
źródło
Może to być błąd w programie Adobe, lepiej zgłaszany na forach.
Aby poprawić wyświetlanie czcionek w systemie Linux, możesz spróbować użyć Infinality:
Widzieć :
Lepsze renderowanie czcionek w systemie Linux z Infinality
Konfiguracja czcionki archlinux - Infinality .
źródło