Condividi tramite


Approssimazioni di colori e dithering

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 attentamente 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 nera e bianca, riceverà una penna nera invece che il sistema usa il nero come approssimazione per il rosso.

Un'applicazione può determinare se il sistema approssima un determinato colore usando la funzione GetNearestColor . La funzione accetta un valore di colore e restituisce il valore di colore del colore corrispondente più vicino 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 una corrispondenza esatta. Quando un'applicazione crea un pennello a tinta unita, il sistema può tentare di simulare il colore richiesto tramite dithering. La dithering simula un colore alternando due o più colori in un motivo. Ad esempio, è possibile simulare sfumature diverse di rosa alternando diverse combinazioni di rosso e bianco. A seconda dei colori e del motivo, 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 di dispositivo. La maggior parte dei driver di dispositivo usa un algoritmo dithering standard, che genera un modello basato sui 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 modificare l'algoritmo dithering del driver di dispositivo. Un'applicazione, tuttavia, può ignorare l'algoritmo creando e usando i pennelli pattern. In questo modo, l'applicazione crea i propri colori dithering combinando i colori a tinta unita nella bitmap usata per creare il pennello.