Perché l'antialiasing nei caratteri neri usa colori diversi dalla scala dei grigi?


17

Sono uno sviluppatore, non sono un graphic designer. Ma c'è una domanda che mi infastidisce da quando l'ho notato alcuni anni fa.

L'antialiasing è un metodo per rimuovere la nitidezza da divisioni ad alto contrasto, come bordi dei caratteri e forme geometriche, se c'è qualcuno che non lo sa.

Quando ottieni un personaggio anti-alias scritto in nero su uno sfondo bianco e ingrandisci per vedere i pixel, ci sono colori diversi da quelli trovati in scala di grigi, che per me sembra ilogico, dal momento che dobbiamo solo fare una transizione graduale dal nero al bianco.

inserisci qui la descrizione dell'immagine

Domanda: Perché i colori diversi da quelli trovati in scala di grigi vengono utilizzati per l'antialiasing di un carattere nero su uno sfondo bianco?

PS .: Se avessi abbastanza reputazione, creerei il tag "anti-aliasing".


Aggiornamento : ho pensato a una teoria ora.
Se le lettere sono destinate a essere visualizzate sul monitor di un computer e la parte più piccola di uno schermo che può essere nera è un intero pixel composto da tre piccole luci, ciò renderebbe il punto più piccolo in una lettera abbastanza grande, ma se l'antialiasing composto da punti circostanti o interni può essere rappresentato per solo 1/3 di pixel con una certa assistenza dal colore al lato, il che significherebbe che le lettere potrebbero essere molto più piccole.

È così?


5
Questo è esattamente. Si chiama "rendering sub-pixel": en.wikipedia.org/wiki/Subpixel_rendering
DA01

1
Nel rendering dei caratteri, il "livellamento" della scala di grigi è generalmente chiamato anti-aliasing e quella versione colorata è chiamata rendering subpixel . Oltre al link @ DA01, vedi anche: en.wikipedia.org/wiki/Font_rasterization
Jari Keinänen

1
ti preghiamo di ripubblicare il tuo aggiornamento come risposta quando ne avrai la possibilità :)
JamesHenare,

Whoa, ho capito bene dopo tutto .. grazie per i collegamenti e le spiegazioni a tutti!
MarceloRamires,

Risposte:


10

Questo si chiama clearType in windows (o rendering sub-pixel come ha detto Marcelo) L'idea è che invece di usare 1 valore per 1 pixel:
(127,127,127) <Grigio

possiamo rendere il lato sinistro di questo pixel meno intenso e il lato destro più
(55.127.185) - Tinta bluastra

e poi lo stesso per i pixel del lato destro
(185.127,55) - La sfumatura arancione
sotto mostra (senza AA) - (Tipo Clear Early) - (AA Regular) - (Ultimo Clear Type)
inserisci qui la descrizione dell'immagine

A mio avviso funziona bene solo per caratteri piccoli (come quello che stai leggendo ora)
Per la grafica normale usi AA normale (infatti Photoshop non supporta clearType)
Spero che questo aiuti! Godere


3

La mia ipotesi era giusta dopo tutto:

Se le lettere sono destinate a essere visualizzate sul monitor di un computer e la parte più piccola di uno schermo che può essere nera è un intero pixel composto da tre piccole luci, ciò renderebbe il punto più piccolo in una lettera abbastanza grande, ma se l'antialiasing composto da punti circostanti o interni può essere rappresentato per solo 1/3 di pixel con una certa assistenza dal colore al lato, il che significherebbe che le lettere potrebbero essere molto più piccole.

Controlla i commenti nelle domande per ulteriore aiuto da DA01 e koiyu (grazie).


Solo per riferimento, ecco i link di Wikipedia nei commenti di DA01 e koiyu:

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.