Farbannäherungen und Dithering
Obwohl eine Anwendung Farben ohne Rücksicht auf die Farbfunktionen des Geräts verwenden kann, ist die resultierende Ausgabe möglicherweise nicht so informativ und ansprechend wie die Ausgabe, für die die Farbe sorgfältig ausgewählt wird. Nur wenige, wenn überhaupt, Geräte garantieren eine exakte Übereinstimmung für jeden möglichen Farbwert; Wenn eine Anwendung daher eine Farbe anfordert, die das Gerät nicht generieren kann, nähert sich das System dieser Farbe an, indem es eine Farbe verwendet, die das Gerät generieren kann. Wenn eine Anwendung beispielsweise versucht, einen roten Stift für einen Schwarzweißdrucker zu erstellen, erhält sie einen schwarzen Stift, stattdessen verwendet das System Schwarz als Näherung für Rot.
Eine Anwendung kann mithilfe der GetNearestColor-Funktion ermitteln, ob das System eine bestimmte Farbe annähert. Die Funktion übernimmt einen Farbwert und gibt den Farbwert der nächstgelegenen übereinstimmenden Farbe zurück, die das Gerät generieren kann. Die Methode, die das System verwendet, um diese Näherung zu bestimmen, hängt vom Gerätetreiber und seinen Farbfunktionen ab. In den meisten Fällen ist die Gesamtintensität der angenäherten Farbe der angeforderten Farbe am nächsten.
Wenn eine Anwendung einen Stift erstellt oder die Farbe für Text festlegt, nähert sich das System immer einer Farbe an, wenn keine genaue Übereinstimmung vorhanden ist. Wenn eine Anwendung einen vollfarbigen Pinsel erstellt, versucht das System möglicherweise, die angeforderte Farbe durch Dithering zu simulieren. Dithering simuliert eine Farbe, indem zwei oder mehr Farben in einem Muster abwechselnd werden. So können beispielsweise verschiedene Rosa-Schattierungen simuliert werden, indem verschiedene Kombinationen von Rot und Weiß abwechselnd verwendet werden. Abhängig von den Farben und dem Muster kann dithering sinnvolle Simulationen erzeugen. Es ist am nützlichsten für monochrome Geräte, da es die Anzahl der verfügbaren "Farben" weit über einfaches Schwarzweiß hinaus erweitert.
Welche Methode zum Erstellen von ditherierten Farben verwendet wird, hängt vom Gerätetreiber ab. Die meisten Gerätetreiber verwenden einen Standard-Ditheringalgorithmus, der ein Muster basierend auf den Intensitätswerten der angeforderten Rot-, Grün- und Blaufarben generiert. Im Allgemeinen unterliegt jede angeforderte Farbe, die vom Gerät nicht generiert werden kann, einer Simulation, aber eine Anwendung wird nicht benachrichtigt, wenn das System eine Farbe simuliert. Darüber hinaus kann eine Anwendung den Ditheringalgorithmus des Gerätetreibers nicht ändern oder ändern. Eine Anwendung kann jedoch den Algorithmus umgehen, indem sie Musterpinsel erstellt und verwendet. Auf diese Weise erstellt die Anwendung ihre eigenen ditherierten Farben, indem sie Volltonfarben in der Bitmap kombiniert, die sie zum Erstellen des Pinsels verwendet.