2016-04-21 7 views
0

Für ein JavaScript-Programm, das ich mache, muss ich den Alpha-Wert einer Overlay-Ebene (# 7F7F7F) über einer Farbe (z. B. # 4A6CD4), die dann eine erstellt hatte Ausgabefarbe (zum Beispiel # 6380DA). So würde es so aussehen:Finden der Alpha gegeben 3 Farben

Von oben nach unten:
# 7F7F7F (Das Alpha ist unbekannt)
# 4A6CD4

die Ausgabe # 6380DA. Alles, was ich wissen muss, ist der Alpha-Wert des Overlays und wie man es findet. Kann mir bitte jemand helfen?

Antwort

0

Wenn der alpha der unteren Schicht 1 ist, dann können Sie den Alpha-Wert leicht wie folgt berechnen:

var top = 0x7F7F7F; 
var bottom = 0x4A6CD4; 
var actual = 0x6380DA; 
var alpha = (actual - bottom)/(top-bottom); 
console.log(alpha); 
+0

Wenn ich es berechne (die Variable 'top' ist bereits verwendet, also habe ich topLayer verwendet), bekomme ich ein Ergebnis, aber wenn ich die oberste Schicht auf die Farbe schwarz setze, bekomme ich einen negativen Alpha-Wert. –

+0

Ändern Sie einfach minus mit einem if alpha <0. –

0

Die "offizielle" Mischen Formel

resultierende color = alpha * Overlay Farbe sein sollte + (1 - alpha) * Hintergrundfarbe

Die Gleichung muss für jeden Kanal berechnet werden (Rot, Grün und Blau, jeweils dargestellt durch zwei Ziffern des Farbcodes in hexadezimaler Darstellung)

obwohl

Sie können dies für alpha lösen (oder Excel verwenden und lösen es numerisch)

Die Formel mit dem Beispiel Werte, die Sie gegeben haben, nicht übereinstimmen, - sind, dass die tatsächlichen Werte oder irgendein willkürliches Beispiel?

+0

Alle Werte sind mit Ausnahme der Überlagerung, die entweder (#FFFFFF) oder (# 000000) ist, tatsächlich –