Dlaczego wygładzanie czarnych znaków wykorzystuje kolory inne niż skala szarości?

17

Jestem programistą, nie jestem grafikiem. Ale jedno pytanie mnie denerwuje, odkąd zauważyłem to kilka lat temu.

Wygładzanie to metoda usuwania ostrości z podziałów o wysokim kontraście, takich jak krawędzie znaków i formy geometryczne, jeśli jest ktoś, kto nie wie.

Kiedy dostaniesz wygładzoną postać napisaną na czarno na białym tle i powiększysz, aby zobaczyć piksele, są kolory inne niż te w skali szarości, co dla mnie wydaje się ilogiczne, ponieważ musimy tylko zrobić płynne przejście z czerni na biel.

wprowadź opis zdjęcia tutaj

Pytanie: Dlaczego kolory różnią się od kolorów w skali szarości używanych do wygładzania czarnego znaku na białym tle?

PS .: Gdybym miał wystarczającą reputację, stworzyłbym tag „antyaliasingu”.


Aktualizacja : Pomyślałem teraz o teorii.
Jeśli litery mają być wyświetlane na monitorze komputera, a najmniejsza część ekranu, która może być czarna, to cały piksel złożony z trzech małych świateł, spowodowałoby to, że najmniejsza kropka w dowolnej literze byłaby dość duża, ale gdyby wygładzanie składające się z otaczających lub wewnętrznych kropek może być reprezentowane tylko dla 1/3 piksela, przy pewnej pomocy od koloru do boku, co oznaczałoby, że litery mogą być znacznie mniejsze.

Czy to to ?

MarceloRamires
źródło
5
Właśnie o to chodzi. Nazywa się to „renderowaniem subpikseli”: en.wikipedia.org/wiki/Subpixel_rendering
DA01
1
W renderowaniu czcionek „wygładzanie” w skali szarości jest zwykle nazywane wygładzaniem, a ta kolorowa wersja jest nazywana renderowaniem subpikseli . Oprócz linku @ DA01 patrz także: en.wikipedia.org/wiki/Font_rasterization
Jari Keinänen
1
prześlij ponownie swoją aktualizację jako odpowiedź, gdy pojawi się szansa :)
JamesHenare
Zaraz, mam to mimo wszystko ... dzięki za linki i wyjaśnienia wszystkim!
MarceloRamires

Odpowiedzi:

10

Nazywa się to clearType w oknach (lub renderowanie subpikseli, jak powiedział Marcelo). Pomysł polega na tym, że zamiast 1 wartości na 1 piksel:
(127, 127, 127) <Szary

, możemy sprawić, że lewa strona tego piksela będzie mniej intensywna, a prawa strona bardziej
(55,127,185) - Niebieskawy odcień,

a następnie taki sam dla pikseli po prawej stronie
(185, 127, 55) - Pomarańczowy odcień
poniżej pokazuje (bez AA) - (Typ wczesnego wyczyszczenia ) - (Zwykły AA) - (Ostatni typ wyraźnego )
wprowadź opis zdjęcia tutaj

Moim zdaniem działa dobrze tylko w przypadku małych czcionek (takich jak ten, który teraz czytasz).
W przypadku zwykłej grafiki używasz zwykłego AA (w rzeczywistości Photoshop nie obsługuje clearType).
Mam nadzieję, że to pomaga! Cieszyć się

Miro
źródło
3

W końcu zgadywałem:

Jeśli litery mają być wyświetlane na monitorze komputera, a najmniejsza część ekranu, która może być czarna, to cały piksel złożony z trzech małych świateł, spowodowałoby to, że najmniejsza kropka w dowolnej literze byłaby dość duża, ale gdyby wygładzanie składające się z otaczających lub wewnętrznych kropek może być reprezentowane tylko dla 1/3 piksela, przy pewnej pomocy od koloru do boku, co oznaczałoby, że litery mogą być znacznie mniejsze.

Sprawdź komentarze w pytaniach, aby uzyskać dalszą pomoc od DA01 i koiyu (dzięki).


Tylko dla odniesienia, oto linki do Wikipedii w komentarzach DA01 i koiyu:

MarceloRamires
źródło