RGBA Farbe gleichwertig zu RGB Farbe

Kirzz

Aktives Mitglied
Thread Starter
Dabei seit
14.11.2009
Beiträge
1.368
Reaktionspunkte
101
Ich möchte eine transparente RGBA Farbe (opacity: .85) gleichwertig zu einer RGB Farbe (opacity: 1) haben.

Beispiel: zwei untereinander liegende DIV, das obere nicht transparent 1, das untere .85 opacity. Lässt sich irgendwie berechnen, wie die zweite RGB Farbe zusammengestellt ist, damit das ganze aussieht wie ein Objekt.

RGB = 111, 24, 37
RGBA = ?

Der Hintergrund ist weiß 255, 255, 255
 
0 = dunkel, 255 = hell
bei .85 opacity müsste der Wert daher niedriger, nicht höher liegen. Der Wert passt daher leider nicht. 90, 0, 5 kommt dem ganzen schon recht nah, aber es ist noch weit entfernt von „gleichwertig“.
Vielleicht gibt es bei den drei Werten eine mathematische Lösung? Eventuell auch eine Farb-App, ein script, was auch immer?
 
Was zeigt denn "digitalcolor meter" in Dienstprogramme? Kann das nicht auch mit rgba?
 
0 = dunkel, 255 = hell
bei .85 opacity müsste der Wert daher niedriger, nicht höher liegen.

Merkwürdig. Ich sehe das auch genau andersherum.

Die höheren Werte sind heller. Opacity= Transparenz macht doch heller. Also ...?

85 Opacity sind doch 25% „heller“, oder? Also jeden Wert mal 1,25 ...
 
Merkwürdig. Ich sehe das auch genau andersherum.

Die höheren Werte sind heller. Opacity= Transparenz macht doch heller. Also ...?

85% Transparenz bedeuten 25% „Farbauftrag“ = jeweiliger Farbwert x 0,25

Eben, zumal auch er Hintergrund weiß ist.
 
Ach, Denkfehler.

Die Farbe muss ja dunkler werden. Damit sie mit 85% so dunkel wird wie die Ausgangsfarbe.

Also doch kleinere Werte! Sorry...

Ich kann testen, was Freehand dazu meint... bis gleich

Edit: Hab versucht, das annähernd anzumischen, krieg das aber nicht annähernd hin.
Ich vermute mal, dass es die gewünschte Farbe gar nicht gibt. Jedenfalls nicht in RGB.
 
Das blöde ist, dass es in RGB so unglaublich viele Möglichkeiten gibt, ein und die selbe Farbe zu mischen. Wenn dann nun noch Transparenz hinzukommt, wird es recht schwierig, was vergleichbares zu finden. Ich habe das bisher immer nach Auge gemacht, bei manchen Farben geht das recht gut, bei anderen leider nicht. Da alle Daten bekannt sind, hatte ich die Hoffnung das es eine mathematische Lösung gibt. Wobei man 0-100 %, in 0 - 255 rechnen müsste.

Ich habe auf stack overflow eine ähnliche Frage gefunden, blicke technisch aber noch nicht ganz durch ...
stackoverflow.com/questions/12228548/finding-equivalent-color-with-opacity
 
der abschnitt "Picking the Color Based on Alpha" trifft doch dein problem.

doch nicht.
 
Zuletzt bearbeitet:
Nichts leichter als das, die mathematische Lösung wäre:

85.5882,-16.7647,-1.47059

Ja, zwei Farbwerte sind negativ.
 
bei manchen Farben geht das recht gut, bei anderen leider nicht.
Richtig, es gibt einen Farbbereich, in dem es nicht möglich ist. Und deine Farbe fällt da auch drunter, fürchte ich.
Sobald du eine relativ satte Farbe ersetzen willst, ist das mit 85 Opazität nicht mehr möglich.
 
In den Antworten steht wohl die Lösung:
Take the lowest color component, and convert that to an alpha value. Then scale the color components by subtracting the lowest, and dividing by the alpha value.
Example:
152 converts to an alpha value of (255 - 152) / 255 ~ 0.404

152 scales using (152 - 152) / 0.404 = 0
177 scales using (177 - 152) / 0.404 ~ 62
202 scales using (202 - 152) / 0.404 ~ 123
So, rgb(152, 177, 202) displays as rgba(0, 62, 123, .404).

I have verified in Photoshop that the colors actually match perfectly.
 
zu #13: 111,24,37 / 97,0,14,.9

je niedriger das farbwertminimum, desto geringer kann die dichte reduziert werden (erinnert an unbuntaufbau).
---
online-tester zur veranschaulichung: http://www.w3schools.com/colors/tryit.asp?filename=trycolors_rgbvalues
code komplett ersetzen mit:
Code:
<!DOCTYPE html>
<html>
<style>
div {height:50px;width:100%;}
</style>
<body>

111,24,37 / 97,0,14,.9
<div style="background-color:rgb(111,24,37)"></div>
<div style="background-color:rgba(97,0,14,.9)"></div>

128,200,200 / 0,144,144,.5
<div style="background-color:rgb(128,200,200)"></div>
<div style="background-color:rgba(0,144,144,.5)"></div>

128,128,255 / 0,0,254,.5
<div style="background-color:rgb(128,128,255)"></div>
<div style="background-color:rgba(0,0,254,.5)"></div>

152,177,202 / 0,62,123,.404
<div style="background-color:rgb(152,177,202)"></div>
<div style="background-color:rgba(0,62,123,.404)"></div>

<br>
<div style="background-color:rgba(0,0,0,.5)"></div>
<br>
<a href="https://stackoverflow.com/questions/6672374/convert-rgb-to-rgba-over-white">https://stackoverflow.com/questions/6672374/convert-rgb-to-rgba-over-white</a>

</body>
</html>
 
Zuletzt bearbeitet:
Zurück
Oben Unten