it-swarm.com.de

Verhexungstransparenz in Farben

Ich arbeite daran, eine Widget-Transparenzoption für mein App-Widget zu implementieren, obwohl ich Probleme habe, die Hex-Farbwerte richtig zu machen. Als Neuling in der Hex-Farbtransparenz habe ich ein bisschen gesucht, obwohl ich keine spezifische Antwort auf meine Frage gefunden habe.

Ich möchte die Transparenz nach hexadezimaler Farbe einstellen. Sagen wir also, meine hexadezimale Farb-ID "# 33b5e5" soll zu 50% transparent sein. Dann benutze ich "# 8033b5e5", weil 80 50% ist.

Ich habe hier eine nützliche Tabelle gefunden: http://www.dtp-aus.com/hexadeci.htm . Mit diesen Daten habe ich es geschafft:

0% = #00
10% = #16
20% = #32
30% = #48
40% = #64
50% = #80
60% = #96
70% = #112
80% = #128
90% = #144

Jetzt tauchen die Probleme auf, wenn ich mehr als 100 hexadezimal bekomme. Hex Farbcodes können nur 8 Zeichen lang sein, oder? Zum Beispiel # 11233b5e5 (80%) stürzt ab.

Was kann ich tun, damit ich auch die höheren Nummern verwenden kann?

1186
SweSnow

Hier ist eine korrekte Tabelle mit Prozentsätzen zu Hex-Werten. Z.B. Für 50% Weiß würden Sie # 80FFFFFF verwenden.

  • 100% - FF
  • 95% - F2
  • 90% - E6
  • 85% - D9
  • 80% - CC
  • 75% - BF
  • 70% - B3
  • 65% - A6
  • 60% - 99
  • 55% - 8C
  • 50% - 80
  • 45% - 73
  • 40% - 66
  • 35% - 59
  • 30% - 4D
  • 25% - 40
  • 20% - 33
  • 15% - 26
  • 10% - 1A
  • 5% - 0D
  • 0% - 00

( Quelle )

3458
Ben Clayton

Kurze Antwort

Sie können die vollständige Tabelle mit Prozentsätzen für Hexadezimalwerte sehen und den Code auf diesem Spielplatz unter https://play.golang.org) ausführen /p/l1JaPYFzDkI .

Kurze Erklärung im Pseudocode

Prozent zu Hex-Werten

  1. dezimal = Prozentsatz * 255/100. Beispiel: Dezimal = 50 * 255/100 = 127,5
  2. konvertiere Dezimal in Hexadezimalwert. Beispiel: 127,5 als Dezimalzahl = 7 * 16ˆ1 + 15 = 7F als Hexadezimalzahl

Hex-Werte in Prozent

  1. konvertieren Sie den hexaxdezimalen Wert in einen dezimalen Wert. Beispiel: D6 = 13 · 16 · 1 + 6 = 214
  2. prozentsatz = (Wert in Dezimalzahl) * 100/255. Beispiel: 214 * 100/255 = 84%

Weitere Infos zur Konvertierung dezimal <=> hexadezimal

Lange Antwort: Wie rechnet man im Kopf?

Das Problem kann generisch durch Kreuzmultiplikation gelöst werden.

Wir haben einen Prozentsatz (im Bereich von 0 bis 100) und eine andere Zahl (im Bereich von 0 bis 255), die dann in hexadezimal umgewandelt werden.

  • 100 <==> 255 (FF hexadezimal)
  • 0 <==> 0 (00 hexadezimal)

Für 1%

  • 1 * 255/100 = 2,5
  • 2,5 in hexa ist 2 , wenn Sie es abrunden.

Für 2%

  • 2 * 255/100 = 5
  • 5 in hexa ist 5 .

Die Tabelle in der besten Antwort gibt den prozentualen Anteil in Schritten von 5% an.

Wie berechne ich die Zahlen zwischen in deinem Kopf? Addieren Sie aufgrund des Inkrements 2.5 2 zum ersten und 3 zum nächsten

  • 95% - F2 // Start
  • 96% - F4 // 2 zu F2 addieren
  • 97% - F7 // 3 hinzufügen. Oder F2 + 5 = F7
  • 98% - F9 // addiere 2
  • 99% - FC // Addiere 3,9 + 3 = 12 in hexa: C
  • 100% - FF // addiere 2

Ich bevorzuge es zu lehren, wie man die Lösung findet, anstatt den Tisch abzugeben

Gib einem Mann einen Fisch und du fütterst ihn für einen Tag; Bringe einem Mann das Fischen bei und füttere ihn ein Leben lang

123
Raymond Chenon

Die hexadezimale Farbschreibweise sieht wie folgt aus: #AARRGGBB

  • A: Alpha
  • R: rot
  • G: grün
  • B: blau

Sie sollten sich zuerst ansehen, wie hexadezimal funktioniert. Sie können höchstens FF schreiben.

35
erkangur

In diesem Diagramm werden keine Prozentangaben angezeigt. "# 90" ist nicht "90%". Dieses Diagramm zeigt die Umwandlung von Hexadezimal nach Dezimal. Die Hex-Zahl 90 (normalerweise als 0x90 dargestellt) entspricht der Dezimalzahl 144.

Hexadezimalzahlen sind Basis-16, daher ist jede Ziffer ein Wert zwischen 0 und F. Der Maximalwert für einen Zwei-Byte-Hexadezimalwert (z. B. die Transparenz einer Farbe) beträgt 0xFF oder 255 in Dezimalzahl. Somit ist 100% 0xFF.

21
Tanis.7x

Ich habe diese kleine Hilfemethode für eine Android App erstellt.

 /**
 * @param originalColor color, without alpha
 * @param alpha         from 0.0 to 1.0
 * @return
 */
public static String addAlpha(String originalColor, double alpha) {
    long alphaFixed = Math.round(alpha * 255);
    String alphaHex = Long.toHexString(alphaFixed);
    if (alphaHex.length() == 1) {
        alphaHex = "0" + alphaHex;
    }
    originalColor = originalColor.replace("#", "#" + alphaHex);


    return originalColor;
}
17
dwbrito

enter image description here

Dies könnte eine sehr späte Antwort sein.

Alle Prozentwerte werden auf die Hexadezimalwerte abgebildet.

http://online.sfsu.edu/chrism/hexval.html

16
amalBit

versuchen Sie dies auf Google Search (oder hier klicken )

255 * .2 to hex

dadurch wird 0x33 generiert.

Google rundet jedoch keine Werte, sodass Sie nur einstellige Multiplikatoren verwenden können. Wenn Sie beispielsweise .85 verwenden möchten, müssen Sie zuerst den gerundeten Wert von 255 * .85 abrufen und dann (rounded-value here) to hex in die Google-Suche eingeben.

6
chjarder

Mir ist klar, dass dies eine alte Frage ist, aber ich bin darauf gestoßen, als ich etwas Ähnliches getan habe.

Mit SASS haben Sie eine sehr elegante Möglichkeit, RGBA in hexadezimales ARGB umzuwandeln: ie-hex-str. Ich habe es hier in einem Mixin verwendet.

@mixin ie8-rgba ($r, $g, $b, $a){
    $rgba: rgba($r, $g, $b, $a);
    $ie8-rgba: ie-hex-str($rgba);
    .lt-ie9 &{
      background-color: transparent;
      filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#{$ie8-rgba}', endColorstr='#{$ie8-rgba}');
  }
}

.transparent{
    @include ie8-rgba(88,153,131,.8);
    background-color: rgba(88,153,131,.8);
}

ausgänge:

.transparent {
  background-color: rgba(88, 153, 131, 0.8);
}
.lt-ie9 .transparent {
  background-color: transparent;
  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#CC589983', endColorstr='#CC589983');
  zoom: 1;
}
2
fontophilic

Verwenden Sie python, um dies zu berechnen, zum Beispiel (geschrieben in python 3), 50% Transparenz:

hex(round(256*0.50))

:)

1
Geng Jiawen