我从未见过像-1
,-16777216
,-256
等颜色代码。所以我目前的问题是:
我们有第三方软件,您可以对其进行颜色编码,如下图所示。
现在我正在创建一个显示这些值的PHP报告,但我也希望使用与软件中定义的颜色相同的颜色显示它们。我能够从数据库中查找值,但我很困惑,因为值是我不熟悉的格式或符号。
你能帮助我将这些值转换为Oracle或PHP中的HEX或RGB,这是我习惯的(我会将它用于报告的CSS)。
查看数据库和软件中的颜色,我至少可以匹配数字:
-1
=白色
-12582784
=紫色
-65408
=粉红色
-16777216
=黑色
-256
=黄色
所以看起来16777216是一个完美的立方体数字。它的立方根是256(在RGB上,每个原色可以用0-255的数字表示)。到目前为止,这是我能看到的唯一关系。我仍然不知道如何将其转换为HEX或RGB。
我做过一些研究,虽然效果不佳。但是我会把它包括在内,所以我看起来并没有尝试 - 如果你对它不感兴趣那么就忽略它:
16777216 - 我开始搜索实际代码-16777216
但是没有返回任何内容,所以我删除了否定符号。
Facts about 16777216 - 该页面显示了一些公式,但我没有看到任何转换为HEX或RGB的内容。
答案 0 :(得分:4)
您的颜色确实是以略微扭曲的方式存储的RGB值。 您所要做的就是从16777216取十进制数并转换为HEX。
16777216-1 = 16777215(FFFFFFh =白色)
16777216-12582784 = 4194432(400080h =紫色)
16777216-65408 = 16711808(FF0080h =粉红色)
16777216-16777216 = 0(000000h =黑色)
16777216-256 = 16776960(FFFF00h =黄色)
我希望这会有所帮助。 不写代码的道歉,但我担心我的学习还没有完成。我保证当我到达那里时我会继续努力。 :)
答案 1 :(得分:0)
我建议使用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>
答案 2 :(得分:0)
在PHP中,我创建了这个函数thanks to this note。
function toColor($n) {
return ("#".substr("000000".dechex($n),-6));
}
它将signed int转换为十六进制,看起来颜色匹配。在一个单独的任务中,我想减少Alpha通道,因为颜色非常强,但我会将其保存一天。