Ich habe ein Tool dafür geschrieben: https://github.com/igrmk/blec . Für Ihren speziellen Fall können Sie es auf diese Weise verwenden
blec white deadbeef
Zuletzt ef
ist die Hex-Darstellung eines Alpha-Kanals. Oder Sie können es so verwenden
blec white deadbe:0.75
Angabe der Deckkraft als Dezimalbruch.
Bitte beachten Sie, dass die vorgeschlagene Formel Y = 255 - P * (255 - X)
aufgrund einer Gammakorrektur nicht ganz genau ist. Genauer wäre, Y = (255^G * (1 - P) + X^G * P) ^ (1 / G)
wenn Y
- der resultierende RGB-Komponentenwert, X
- der RGB-Komponentenwert überlagert wird, P
- seine Opazität, G
- ein Wert eines Gammas. Der häufigste Wert eines Gammas ist 2,2. Der Grund für die Aufnahme einer Gammakorrektur in die Formel besteht darin, Komponenten beim Berechnen in den linearen Raum zu verschieben. Fast jeder heute verwendete RGB-Raum interpretiert Farbkomponenten nichtlinear, um mehr Farbinformationen in 8 Bit zu platzieren. In der Vergangenheit wurde es eingeführt, um eine Nichtlinearität von CRT-Anzeigen zu kompensieren.
Hier ist ein Beispiel, warum eine Gammakorrektur für das Mischen wichtig ist. Nehmen wir dieses rote Bild
und dieses blaue Bild
Nehmen wir das erste Bild vollständig undurchsichtig und stellen Sie eine Deckkraft des zweiten Bildes ein, die der x-Achse entspricht
Jetzt mischen wir sie ohne Gammakorrektur (Gamma = 1)
Lassen Sie uns eine Gammakorrektur aktivieren und dasselbe tun (Gamma = 2,2)
Wie Sie sehen, gibt es einen viel lokaleren Übergang, wenn wir keine Gammakorrektur verwenden. In der Mitte sind deutlich dunklere Farben zu sehen. Wenn wir eine Gammakorrektur verwenden, werden der Übergang und die Helligkeit viel glatter.
Der letzte Gradient wird durch Dithering erstellt.
Das Bild enthält Pixel mit nur zwei Farben, aber die Wahrscheinlichkeit von Blau steigt linear von 0 links auf 1 rechts. Das Ergebnis kommt dem Bild mit Gamma = 2,2 in Bezug auf Helligkeit und Übergangsfarben viel näher. Versuchen Sie es aus der Ferne zu betrachten. Und das erwarten Sie wahrscheinlich von der Mischung zweier Farben. Wir mischen sie buchstäblich, indem wir sie in diesem Beispiel wie Aquarelle mischen. Daher ist Gamma für das Mischen sehr wichtig, insbesondere wenn die Deckkraft nahe bei 0,5 liegt.
Vergleichen wir abschließend die Mischung von opakem Rot und Blau mit einem Alpha von 0,5, wobei der Effekt einer Gammakorrektur maximal ist.
Das erste Bild verwendet keine Gammakorrektur, das zweite ein Gamma von 2,2 und das dritte ein Dithering. Wie Sie sehen können, unterscheidet sich der erste sehr von den beiden anderen. Ich rate daher, immer eine Gammakorrektur zu verwenden. Wenn Sie einen anständigen Bildeditor verwenden, sind Sie höchstwahrscheinlich sicher und eine Gammakorrektur ist standardmäßig aktiviert.
Bitte beachten Sie, dass Sie zum Vergleichen eines Ditherings mit einer Überblendung Bilder in einem Maßstab von 100% betrachten müssen, damit jedes einzelne Pixel des Bildes genau ein Pixel eines Bildschirms einnimmt. Dies ist fast nie der Fall, wenn Sie ein Mobiltelefon verwenden. Wenn Sie Bilder in unterschiedlichem Maßstab betrachten, sehen Sie wahrscheinlich ein Antialias-Bild. Das Antialiasing kann zu sehr ungenauen Ergebnissen führen, da derzeit keine Gammakorrektur verwendet wird. Ich kann es für Chrome 83 unter Android 10 und für die neueste Safari unter iOS 13 bestätigen. Ich denke, es benötigt zu viele Ressourcen, um es richtig zu machen. Wenn Sie sehr kontrastreiche, verrauschte Bilder betrachten, wird das Gamma eines Displays effektiv auf etwa 1,8 verringert.
Bitte beachten Sie auch, dass nicht jedes Display gut kalibriert ist. Wenn Sie das Gefühl haben, dass ein Bild mit einem Gamma von 2,2 und ein Bild mit einem Dithering unterschiedliche Farben erzeugen, habe ich eine schlechte Nachricht für Sie. Sie können ein Gamma Ihres Monitors hier überprüfen: http://web.mit.edu/jmorzins/www/gamma/adilger/gamma.html . Wenn Sie jedoch ein mobiles Gerät verwenden, ist es besser, eine Anwendung zu verwenden, da ein Antialiasing zu sehr ungenauen Ergebnissen führen kann.
Hier ist ein Code, um diese Bilder zu erhalten https://pastebin.com/fHYtWrMb .