协慌网

登录 贡献 社区

六角透明的颜色

我正在为我的应用程序小部件实现一个小部件透明度选项,尽管我在修复十六进制颜色值时遇到了一些麻烦。作为十六进制颜色透明度的全新,我搜索了一下,虽然我找不到我的问题的具体答案。

我想用十六进制颜色设置透明度,所以让我说我的十六进制颜色 ID“#33b5e5”,我希望它是 50%透明。然后我会使用 “#8033b5e5”,因为 80%是 50%。

我在这里找到了一个有用的图表: http//www.dtp-aus.com/hexadeci.htm 。有了这些数据,我设法得到了这个:

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

现在,当我以十六进制高于 100 时问题开始出现。十六进制颜色代码只能长 8 个符号吗?例如#11233b5e5(80%)崩溃。

我能做些什么才能让我使用更高的数字呢?

答案

这是一个十六进制值百分比的正确表。例如 50%的白色,你会使用#80FFFFFF。

  • 100% - FF
  • 95% - F2
  • 90% - E6
  • 85% - D9
  • 80% - CC
  • 75% - 高炉
  • 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

来源

简短的回答

您可以在https://play.golang.org/p/l1JaPYFzDkI 中查看十六进制值的完整百分比表并在此操场中运行代码。

伪代码的简短解释

十六进制值的百分比

  1. 小数 = 百分比 * 255/100。例如:十进制 = 50 * 255/100 = 127.5
  2. 十进制转换为十六进制值。例如:十进制 127.5 = 7 * 161 + 15 = 十六进制 7F

十六进制值为百分比

  1. 将 hexaxdecimal 值转换为 decimal。例如:D6 = 13 * 161 + 6 = 214
  2. 百分比 =(十进制值)* 100/255。例如:214 * 100/255 = 84%

转换十进制 <=> 十六进制的更多信息

答案很长:如何在脑海中计算

这个问题可以通过交叉乘法来解决。

我们有一个百分比(范围从 0 到 100)和另一个数字(范围从 0 到 255)然后转换为十六进制。

  • 100 <==> 255(十六进制 FF)
  • 0 <==> 0(十六进制 00)

1%

  • 1 * 255/100 = 2,5
  • 如果你向下舍入,则 hex 中的 2,5 是2

2%

  • 2 * 255/100 = 5
  • hexa 中的55

最佳答案中的表格给出了 5%的逐步百分比。

如何计算你头脑中的数字?由于2.5增量,第一个加 2,下一个加 3

  • 95% - F2 // 开始
  • 96% - F4 // 将 2 添加到 F2
  • 97% - F7 // 加 3。或 F2 + 5 = F7
  • 98% - F9 // 加 2
  • 99% - FC // 在 hexa 中添加 3. 9 + 3 = 12:C
  • 100% - FF // 加 2

我更喜欢教如何找到解决方案而不是交桌子

给一个人一条鱼,你喂他一天; 教一个人钓鱼,你喂他一辈子

颜色十六进制表示法如下:#AARRGGBB

  • 答:阿尔法
  • R:红色
  • G:绿色
  • B:蓝色

您应该首先看看十六进制是如何工作的。你最多可以写 FF。