css 将负颜色数转换为十六进制或RGB

dz6r00yl  于 2022-12-05  发布在  其他
关注(0)|答案(3)|浏览(236)

我从未见过-1-16777216-256等颜色代码。因此,我目前的问题是:
我们有一个第三方软件,您可以在其中对值进行颜色编码,如下图所示。

现在我正在创建一个PHP报告来显示这些值,但我还想使用与软件中定义的颜色相同的颜色来显示它们。我能够从数据库中找到这些值,但我感到困惑,因为这些值的格式或符号我不熟悉。

如何在Oracle或PHP中将这些值转换为HEX或RGB?PHP是我所习惯的(我将在报表的CSS中使用它)。

编辑

看着数据库和软件中的颜色,我至少可以像这样匹配数字:
-1 =白色
-12582784 =紫色
-65408 =粉红色
-16777216 =黑色
-256 =黄色

其他编辑

所以看起来16777216是一个完美的立方数。它的立方根是256(在RGB上,每种原色都可以用0-255的数字来表示)。到目前为止,这是我能想到的唯一关系。但我仍然不知道如何将其转换为HEX或RGB。
我做了一些研究,虽然没有什么成果,但我会把它包括进来,这样看起来我不会做尝试--如果你对它不感兴趣,那就忽略它:
16777216-我从搜索实际的代码-16777216开始,但没有返回任何内容,所以我删除了负号。
Facts about 16777216-该页面显示了一些公式,但我没有看到任何转换为十六进制或RGB。

edqdpe6u

edqdpe6u1#

你的颜色实际上是RGB值,以一种稍微扭曲的方式存储。你所要做的就是,把十进制数从16777216中去掉,转换成十六进制。
16777216-1 = 16777215(FFFFFFh =白色)
16777216-12582784 = 4194432(400080小时=紫色)
16777216-65408 = 16711808(FF 0080 h =粉色)
16777216-16777216 = 0(000000小时=黑色)
16777216-256 = 16776960(FFFF 00 h =黄色)
我希望这能有所帮助。很抱歉没有写代码,但我担心我的学习还没有完全完成。我保证我会在完成后继续工作。:)

jchrr9hc

jchrr9hc2#

我建议使用PHP将BACK_COLOR(即“编码颜色引用ID”)拉入每个表格单元格。出于CSS原因,在负数前面加上一个字符。包括为每个动态类指定颜色的CSS。

<style>
.g-1 { color: #000; background: #ffffff /* white */ } 
.g-12582784 { color: #fff; background: #3F0180 /* purple */ } 
.g-65408 { color: #fff; background:  #FF0080 /* pink */ } 
.g-256 background: { color: #000; #FFFD05 /* yellow */ }
.g-16777216 { color: #fff; background: #000000 /* black */ }
</style>

<table>
<tr>
<td class="g-12582784">Option 1</span> <!-- use PHP to generate this class -->
<td class="g-65408">Option 2</span> <!-- use PHP to generate this class -->
<td class="g-256">Option 3</span> <!-- use PHP to generate this class -->
</tr>
</table>
20jt8wwn

20jt8wwn3#

在PHP中,我创建了这个函数,这要归功于这个注解。

function toColor($n) {
    return ("#".substr("000000".dechex($n),-6));
}

它将带符号的int转换为十六进制,看起来颜色匹配。在另一个任务中,我想减少alpha通道,因为颜色非常强烈,但我会保存到另一天。

相关问题