【发布时间】:2017-07-26 19:03:29
【问题描述】:
我从未见过-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 的公式。
【问题讨论】:
-
对于颜色代码部分,这里有答案:stackoverflow.com/questions/12903820/…
-
感谢@haslam,这似乎与我所经历的完美匹配。我现在要试着理解它。
-
唯一想到的是有符号整数和无符号整数之间的转换。我了解这些负数当前存储在表格中;你知道它们是如何产生的吗?
-
@mathguy 不,我没有。第三方软件是 .NET 应用程序,所以我猜测使用 C# 方法?
-
如果我必须手动执行此操作,只是为了测试无意转换为有符号整数的假设:将 256^3 添加到负数并将结果“写入”基数 256。“数字”是(或应该是)RGB 代码。显然这适用于黑色(添加 256^3 结果为 0,黑色的正确代码),显然这适用于黄色(值 255、255、0)。而对于白色(你会得到 255、255、255)。