我从未见过-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。
3条答案
按热度按时间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 =黄色)
我希望这能有所帮助。很抱歉没有写代码,但我担心我的学习还没有完全完成。我保证我会在完成后继续工作。:)
jchrr9hc2#
我建议使用PHP将BACK_COLOR(即“编码颜色引用ID”)拉入每个表格单元格。出于CSS原因,在负数前面加上一个字符。包括为每个动态类指定颜色的CSS。
20jt8wwn3#
在PHP中,我创建了这个函数,这要归功于这个注解。
它将带符号的int转换为十六进制,看起来颜色匹配。在另一个任务中,我想减少alpha通道,因为颜色非常强烈,但我会保存到另一天。