Wie ist mein Cursor weißer als weiß?

Wie ist mein Cursor weißer als weiß?

Mir ist vor Kurzem aufgefallen, dass mein Cursor weißer war als das Weiß des Hintergrunds (reines 0xFFFFFF). Ich dachte zunächst, es handele sich um eine optische Täuschung, da Screenshots zeigten, dass sowohl der Hintergrund als auch der Cursor 0xFFFFFF hatten. Dann habe ich ein Foto vom Cursor gemacht und es zeigt deutlich einen Helligkeitsunterschied:

Foto des Cursors

Um die durchschnittliche Helligkeit besser erkennen zu können, habe ich auf das Bild einen Mosaikfilter gelegt:

Foto des Cursors mit Mosaikfilter

Das Innere des Pfeils hat eine Grautonstufe von etwa 191 (0xBF) und der Hintergrund eine Grautonstufe von etwa 177 (0xB1). Das bedeutet, dass das Weiß des Cursors etwa 8 % heller ist als das reine Weiß des Hintergrunds.

Welche Hardware macht das und wie? Werden die Farbinformationen mit mehr als 8 Bit pro Kanal übertragen?

Der Computer verfügt über Windows XP und eine NVIDEA GeForce 8500 GT-Grafikkarte, die über ein HDMI-Kabel mit einem Samsung 5100-Fernseher verbunden ist.

Ein anderes Foto:

Zwei Cursor und ein schattiertes Quadrat

Ein Hardware-Cursor, ein Screenshot des Hardware-Cursors und ein 16x16-Quadrat jedes Graustufenwerts von 0 bis 0xFF in 2x2-Blöcken.

Zwei Cursor und ein schattiertes Quadrat mit Mosaikfilter

Dasselbe wie das vorherige Bild, aber mit angewendetem Mosaikfilter. Es sollte offensichtlich sein, welcher der tatsächliche Cursor und welcher der Screenshot des Cursors auf dem Foto ist. Die Helligkeit beträgt diesmal 185 und 170, immer noch etwa 8 % Unterschied. Mit einem Farbwähler ist die Farbe, die auf dem Foto 170 ist, auf dem Bildschirm 0xFFFFFF. Ich kann den Farbwähler nicht auf dem Cursor selbst verwenden, da er die Farbe direkt unter dem Cursor abtastet.

Antwort1

Wie in der Antwort von Psychogeek erwähnt, handelt es sich hierbei um ein Problem mit einer Farbprofileinstellung des Betriebssystems.

Farbprofile können von der Anwendung, dem Betriebssystem, der Grafikkarte und der Anzeigehardware angewendet werden.

Bei OS-Farbprofilen in Windows wird das Farbprofil beim Senden an die Grafikkarte anders auf den Cursor als auf das Bildschirmbild angewendet, was zu unterschiedlichen Farben führen kann, wenn das Farbprofil den Weißpunkt ändert. In Ihrem Fall wird der Cursor als echtes Weiß gesendet, während auf das darunterliegende Bild ein Farbprofil angewendet wird, das den Weißpunkt auf ein niedrigeres Niveau ändert.

Der Cursor wird getrennt von den restlichen Anzeigedaten an die Grafikkarte gesendet und von der Grafikkarte zu einem späteren Zeitpunkt beim Rendern eingemischt, bevor er an das Display gesendet wird.

Auf vereinfachter Ebene:

[Cursor Draw]   --   --   --   --   --   --   --
                                               ˅
[Windowing] --> [OS Profile] --> [Video Driver] --> [Video Card] --> [Hardware Profile] --> ...

Bei einem Screenshot wird das Farbprofil des Betriebssystems nicht auf die „aufgenommenen“ Daten angewendet, da diese in der Fensterphase erfasst werden. Im Allgemeinen wird der Cursor in der Screenshot-Aufnahme nicht angezeigt, da die Aufnahme bereits vor der Anwendung des Betriebssystemprofils erfolgt. Bestimmte Tools (von denen ich annehme, dass Sie sie verwendet haben) zum Aufnehmen des Bildschirms mischen den Cursor jedoch auf dieselbe Weise über das Bild wie die Grafikkarte. Da die Weißwerte des Cursors und des Hintergrunds beide 100 % betragen, weist der Screenshot für beide den gleichen Weißwert auf.

Das normale Verhalten, das Sie sehen, kann behoben werden, indem Sie einen Monitor oder eine Grafikkarte mit einer Hardware-LUT zur Farbkalibrierung verwenden oder indem Sie den Cursor an einem anderen Renderpunkt zeichnen lassen, siehe hierPhoto.SE-Frage. Sie können auch das Cursorbild bearbeiten und den Weißwert ändern, wenn es Sie stört. Ich finde jedoch, dass der Cursor dadurch auf dem Bildschirm besser zu erkennen ist.

Antwort2

Diese Antwort beginnt mit einer Analyse, warum Dinge beim Digitalen nicht 1:1 funktionieren und endet mit möglichen Änderungen, die auf Ihrer eigentlichen Frage basieren.

  • Machen Sie mit Ihrer Kamera ein Foto. Alle Sensordaten werden verarbeitet.
  • Dann wird es zu Tode komprimiert.
  • Anschließend wird es 1:1 auf Ihren Computer übertragen.
  • Wo es angezeigt wird, wird es durch alle OS-Farbprofile angepasst.
  • Dabei wird es digital auf eine Grafikkarte gezeichnet, die nicht nur vom Benutzer angepasst werden kann, sondern möglicherweise auch über einige eigene Farbtricks verfügt.
  • 1:1 an den Monitor gesendet.
  • Dort kann es in der Verarbeitung vollständig angegriffen werden, bevor es auf eine Anzeigetafel gelangt.
  • Das Anzeigefeld selbst kann nicht alle Aspekte davon darstellen.
  • Die Farben der Hintergrundbeleuchtung variieren um große Prozentsätze, basierend auf dem von der Hintergrundbeleuchtung ausgestrahlten Farbspektrum.

In diesem Fall ist der Cursor (wahrscheinlich) ein hardwareseitig gerendertes Element, das in die Hardware der Grafikkarte eingelegt ist. Das erste, was Sie überprüfen oder versuchen sollten, anzupassen, um es zu ändern, ist das Monitorprofil und/oder die vom Betriebssystem angewendeten Farbprofile. Farbprofile finden Sie in der Systemsteuerung, Alle Systemsteuerungselemente, Farbverwaltung. Dort finden Sie Farbprofile, die die Farbe ändern, bevor sie auf den Monitor selbst gelangt.
Die Profile können deaktiviert werden, sodass Sie die Wirkung beobachten können.

Anpassungen in der Grafikkartensoftware. Der Desktop, 3D und die Video-Direktzeichnung sind alle steuerbar. Selbst wenn diese Dinge nicht in der Grafikkartensoftware angepasst wurden, kann es sein, dass bei der Einstellung 0 0 0 immer noch einige Verarbeitungsvorgänge stattfinden. Sie könnten versuchen, es zu verwenden, um die Cursorüberlagerung anzupassen, wenn es einen echten Grund gibt, sich damit zu beschäftigen.

Die Grafikkarte überlagert den per Hardware gerenderten Cursor und verwendet dafür nicht dieselben Parameter wie für den Rest des Hintergrunds, und so funktioniert es einfach.

--basierend auf dem Kontrollbild trifft nichts vom Rest auf diese spezielle Frage zu--

Eine weitere Möglichkeit sind die Monitoreinstellungen, obwohl dies weniger wahrscheinlich ist. Automatische Kontrast- und Farbeinstellungen bei Monitoren und Fernsehgeräten können große helle oder dunkle Bereiche ausgleichen und verursachen häufig unerwünschte Änderungen. Automatische Farb- und Nivellierungsanpassungen bei Monitoren sind nicht immer anpassbar und verwenden viele verschiedene niedliche Namen für die Aktionen, die sie ausführen.

Profile in Monitoren wie „Spiel“, „Film“, „Desktop“ oder wie auch immer sie Profile nennen, legen bestimmte Farb-, Kontrast- und Helligkeitseinstellungen fest, die sie für das ausgewählte Profil als nützlich erachten, und auch bei der richtigen Profilauswahl kann es zu unerwünschten Änderungen kommen.

Schärfungsalgorithmen in der Kamera, wahrscheinlich nicht in der Grafikkarte, aber wiederum im Monitor, können eine Matrix von Hervorhebungen um Bereiche herum erstellen, die den ursprünglichen Kontrast erhöhen oder (natürlich) verringern. In dieser Frage ist dies weniger wahrscheinlich, da sich das Weiß über die Pixel hinaus ausdehnt, auf die eine Schärfungsmatrix angewendet werden würde, es sei denn, es handelte sich um zwei verschiedene Verarbeitungen.

Die Liste wird noch länger, wenn Software eigentlich keinen rein weißen Hintergrund haben muss, dieser kann angepasst werden. Das Betriebssystem und die Programme können einen Hintergrund haben, der nicht weiß ist, aber Sie wissen bereits, dass dies nicht der Fall ist, wenn Sie bei dieser Frage eine Farbauswahl für den Hintergrund auf dem ursprünglichen Desktop oder Programm vorgenommen haben.

Die Farbauswahl auf dem Desktop zeigt Ihnen die Farbe des Pixels (oder der Pixel), die dort vorhanden sind, und liefert dem Benutzer Fakten darüber, was das Programm anzeigt. Das Farbbild wird angezeigt, bevor ein Farbprofil die Ausgabe anpasst. Die Farbauswahl ist also eine großartige Möglichkeit, die tatsächliche Farbe zu ermitteln. Anschließend wird es noch einmal verarbeitet.

Es gibt Programme, die einen Screenshot mit darüber gelegtem Cursor machen. Daraus könnte man eine Farbauswahl treffen, aber der Cursor kann auch mit einer anderen Methode gezeichnet und auf die gleiche Weise verarbeitet werden wie der Rest. Es ist also möglich, eine digitale Software-Aufnahme des Bildschirms und des Cursors zu machen, aber dadurch kann sich ändern, was hier tatsächlich zu sehen ist.

verwandte Informationen