Question Transparence hexagonale en couleurs [dupliquer]


Cette question a déjà une réponse ici:

Je travaille sur l'implémentation d'une option de transparence wigdget pour mon widget d'application bien que j'aie du mal à obtenir les valeurs de couleurs hexadécimales. Étant complètement nouveau pour la transparence des couleurs hexadécimales, j'ai cherché un peu, même si je n'ai pas trouvé de réponse spécifique à ma question.

Je veux définir la transparence par couleur hexadécimale, donc disons que mon identifiant de couleur hexadécimal est "# 33b5e5" et je veux qu'il soit transparent à 50%. Ensuite, je vais utiliser "# 8033b5e5" parce que 80 est de 50%.

J'ai trouvé un tableau utile ici: http://www.dtp-aus.com/hexadeci.htm . Avec ces données, j'ai réussi à trouver cela:

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

Maintenant, les problèmes commencent à apparaître quand je reçois plus de 100 en hexadécimal. Les codes de couleur hexadécimaux ne peuvent être longs que de 8 symboles? Par exemple # 11233b5e5 (80%) des accidents.

Que puis-je faire pour que je puisse utiliser les chiffres plus élevés?


942
2018-04-06 14:30


origine


Réponses:


Voici un tableau correct des pourcentages aux valeurs hexadécimales. Par exemple. pour 50% de blanc, vous utiliseriez # 80FFFFFF.

  • 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

(la source)


3015
2018-06-21 16:15



Réponse courte

Vous pouvez voir le tableau complet des pourcentages en valeurs hexadécimales et courir le code dans ce terrain de jeu https://play.golang.org/p/l1JaPYFzDkI .

Brève explication en pseudocode

Pourcentage des valeurs hexadécimales

  1. décimal = pourcentage * 255/100. ex: décimal = 50 * 255/100 = 127,5
  2. convertir décimal à la valeur hexadécimale. ex: 127,5 en décimal = 7 * 161 + 15 = 7F en hexadécimal

Valeurs hexadécimales en pourcentage

  1. convertit la valeur hexaxdecimal en décimal. ex: D6 = 13 * 161 + 6 = 214
  2. pourcentage = (valeur en décimal) * 100 / 255. ex: 214 * 100/255 = 84%

Plus d'infos pour la conversion décimale <=> hexadécimal 

Réponse longue: comment calculer dans votre tête

Le problème peut être résolu de manière générique par un multiplication croisée.

Nous avons un pourcentage (allant de 0 à 100) et un autre nombre (allant de 0 à 255) puis converti en hexadécimal.

  • 100 <==> 255 (FF en hexadécimal)
  • 0 <==> 0 (00 en hexadécimal)

Pour 1%

  • 1 * 255/100 = 2,5
  • 2,5 en hexa est 2 si vous l'arrondissez.

Pour 2%

  • 2 * 255/100 = 5
  • 5 en hexa est 5 .

Le tableau dans la meilleure réponse donne le pourcentage par pas de 5%.

Comment calculer les nombres entre dans votre tête? En raison de 2,5 incrémenter, ajouter 2 à la première et 3 à la suivante

  • 95% - F2 // début
  • 96% - F4 // ajouter 2 à F2
  • 97% - F7 // ajouter 3. Ou F2 + 5 = F7
  • 98% - F9 // ajouter 2
  • 99% - FC // ajouter 3. 9 + 3 = 12 en hexa: C
  • 100% - FF // ajouter 2

Je préfère enseigner comment trouver la solution plutôt que de passer la table

Donnez un poisson à un homme et vous le nourrissez pour une journée; apprendre à un homme à pêcher et   vous le nourrissez pour la vie


89
2018-03-19 10:14



La notation hexadécimale couleur est comme suit: #AARRGGBB

  • A: alpha
  • R: rouge
  • G: vert
  • B: bleu

Vous devriez d'abord regarder comment hexadécimal travaux. Vous pouvez écrire au maximum FF.


26
2018-04-06 14:35



Ce graphique ne montre pas les pourcentages. "# 90" n'est pas "90%". Ce graphique montre la conversion hexadécimale en décimale. Le nombre hexadécimal 90 (typiquement représenté par 0x90) est équivalent au nombre décimal 144.

Les nombres hexadécimaux sont en base 16, de sorte que chaque chiffre est une valeur comprise entre 0 et F. La valeur maximale d'une valeur hexadécimale de deux octets (telle que la transparence d'une couleur) est 0xFF ou 255 en décimal. Ainsi 100% est 0xFF.


20
2018-04-06 14:39



J'ai construit cette petite méthode d'aide pour une application Android, peut être utile:

 /**
 * @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;
}

15
2018-06-24 11:03



enter image description here

Cela pourrait être une réponse très tardive. Mais ce tableau le tue.

Toutes les valeurs en pourcentage sont mappées aux valeurs hexadécimales.

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


15
2018-04-22 08:31



essayez ceci sur google search (ou cliquez ici)

255 * .2 to hex

ça va générer 0x33 Par conséquent.

Cependant, google n'arrête pas les valeurs et vous ne pouvez donc utiliser que des multiplicateurs à un chiffre. si vous voulez utiliser dire .85, vous devez d'abord obtenir la valeur arrondie de 255 * .85, puis tapez (rounded-value here) to hex dans la recherche google.


5
2018-06-11 06:09



Utiliser python pour le calculer, par exemple (écrit en python 3), 50% de transparence:

hex(round(256*0.50))

:)


2
2017-12-12 02:16



Je me rends compte que c'est une vieille question, mais je l'ai rencontré en faisant quelque chose de similaire.

En utilisant SASS, vous avez une manière très élégante de convertir RGBA en hexagone ARGB: ie-hex-str. Je l'ai utilisé ici dans un mixin.

@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);
}

les sorties:

.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
2017-12-09 19:44