Condividi tramite


Approssimazioni dei colori e dithering (diffusione del colore)

Anche se un'applicazione può usare il colore senza considerare le funzionalità di colore del dispositivo, l'output risultante potrebbe non essere così informativo e piacevole come output per il quale viene scelto con attenzione il colore. Pochi, se presenti, i dispositivi garantiscono una corrispondenza esatta per ogni valore di colore possibile; pertanto, se un'applicazione richiede un colore che il dispositivo non può generare, il sistema approssima tale colore usando un colore che il dispositivo può generare. Ad esempio, se un'applicazione tenta di creare una penna rossa per una stampante bianca e nera, riceverà invece una penna nera poiché il sistema usa il nero come approssimazione per il rosso.

Un'applicazione può scoprire se il sistema approssima un determinato colore utilizzando la funzione GetNearestColor. La funzione accetta un valore di colore e restituisce il valore del colore più simile che il dispositivo può generare. Il metodo usato dal sistema per determinare questa approssimazione dipende dal driver di dispositivo e dalle relative funzionalità di colore. Nella maggior parte dei casi, l'intensità complessiva del colore approssimativo è più vicina a quella del colore richiesto.

Quando un'applicazione crea una penna o imposta il colore per il testo, il sistema approssima sempre un colore se non esiste alcuna corrispondenza esatta. Quando un'applicazione crea un pennello a tinta unita, il sistema può tentare di simulare il colore richiesto tramite una tecnica chiamata dithering. dithering simula un colore alternando due o più colori in un motivo. Ad esempio, diverse sfumature di rosa possono essere simulate alternando diverse combinazioni di rosso e bianco. A seconda dei colori e del modello, il dithering può produrre simulazioni ragionevoli. È più utile per i dispositivi monocromatici, perché espande il numero di "colori" disponibili ben oltre il semplice nero e bianco.

Il metodo usato per creare colori dithering dipende dal driver del dispositivo. La maggior parte dei driver di dispositivo usa un algoritmo dithering standard, che genera un modello in base ai valori di intensità dei colori rosso, verde e blu richiesti. In generale, qualsiasi colore richiesto che non può essere generato dal dispositivo è soggetto alla simulazione, ma un'applicazione non riceve una notifica quando il sistema simula un colore. Inoltre, un'applicazione non può modificare o cambiare l'algoritmo di dithering del driver del dispositivo. Un'applicazione, tuttavia, può ignorare l'algoritmo creando e usando i pennelli pattern. In questo modo, l'applicazione crea i propri colori screziati combinando i colori a tinta unita nella bitmap che utilizza per creare il pennello.