Ich habe das folgende HTML-Snippet in Safari geöffnet. Digital Color Meter meldet die Farbe als #FEDC53.
<!DOCTYPE html>
<html>
<head>
<title>Broken Colors?</title>
</head>
<body style="background-color: #FFDD44">
Hello, World!
</body>
</html>
Zeigt Safari die falsche Farbe an? Oder zeigt das Digital Color Meter den Messwert in der falschen Farbe an? Wie finde ich es heraus? Wie behebe ich das?
Vergleichbares echtes FFDD44-Muster mit eingebettetem sRGB-Profil.
Der digitale Farbmonitor funktioniert ordnungsgemäß.
Ich habe Ihre Testseite erstellt und in Google Chrome v53.0.2785.143 angezeigt, und sie hat FFDD44 gemeldet.
Dieselbe Seite in Safari meldete für mich F4E14F. Wenn man sie nebeneinander betrachtet, sehen sie nicht einmal wie die gleiche Farbe aus. (Im Screenshot ist Chrome das äußere Fenster, Safari das innere.)
Der Grund scheint die Gammakorrektur im Browser zu sein. Siehe die Gamma-Testseite . Diese Seite wird in Safari v9.1.3 korrekt angezeigt (in dem Sinne, dass jeder Block einfarbig ist), während sie in Chrome v53.0.2785.143 falsch angezeigt wird. Siehe Screenshots unten. Basierend auf den Informationen auf der Gamma-Testseite korrigiert Safari CSS-Farben korrekt gamma-korrigiert.
Was passiert ist, dass das digitale Farbmessgerät (und alle Farbtropfer) den Farbwert liest, NACHDEM er für das ICC-Farbprofil Ihres Displays angepasst wurde. Sehen Sie, wie es "Farb-LCD" im unteren rechten Feld anzeigt? Trotz des allgemein klingenden Namens ist das das ICC-Farbprofil speziell für Macbooks.
Hier ist ein Datenflussdiagramm:
#FFDD44 (original)
↓
#FEDC53 (adjusted for Color LCD display profile)
Der Begriff "native Werte anzeigen" ist irreführend, da es so klingt, als würden die ursprünglichen Werte angezeigt, dies jedoch nicht der Fall ist. Anscheinend können Farbtropfer nicht die ursprünglichen Werte erhalten. Es gibt also 2 Lösungen:
Ändern Sie das digitale Farbmessgerät in den Modus „Anzeige in sRGB“. Dadurch wird der angepasste Wert erneut in sRGB konvertiert (vorausgesetzt, dies ist der Farbraum des Originalbilds). Das Problem dabei ist die doppelte Umrechnung und Rundungsfehler, manchmal bekommt man nicht den exakten Originalwert zurück! (In diesem Fall war es dasselbe, aber wenn Sie mehr Farben ausprobieren, werden Sie einige finden, die leicht abweichen).
#FFDD44 (original)
↓
#FEDC53 (adjusted for Color LCD display profile)
↓
#FFDD44 (convert back to sRGB)
Wenn Sie die exakten Originalwerte garantieren möchten, sollten Sie Digital Color Meter auf "Native Werte anzeigen" einstellen und dann Ihre System Preferences > Displays > Color > sRGB
. Vergewissern Sie sich, dass das digitale Farbmessgerät jetzt „sRGB...“ im unteren rechten Feld anzeigt. Da dies dem Farbraum der Originalquelle entspricht, wird keine Anpassung vorgenommen, sodass "Native Werte anzeigen" immer die exakten Originalwerte sind. (Sie sollten daran denken, es danach wieder auf "Farb-LCD" zu ändern. Oder wenn es Ihnen egal ist, lassen Sie es auf "sRGB".)
#FFDD44 (original)
(no adjustment since display profile sRGB matches the original color space)
Weitere Informationen finden Sie in dieser Antwort .
Tetsujin