【问题标题】:Cant figure out color codes in dll无法弄清楚dll中的颜色代码
【发布时间】:2017-12-01 03:33:06
【问题描述】:

好吧,这可能是一个愚蠢的问题,但我正在编辑一个用 delphi 编写的 dll,并想更改一些颜色定义,但我无法弄清楚颜色是用什么格式写入的。例如:

99999999 -> 是亮粉色

55555555 -> 是橙色

15663114 -> 蓝色

3496 -> 深红色

0 -> 黑色

有些颜色是用 7 位数字定义的:

【问题讨论】:

    标签: delphi colors


    【解决方案1】:

    这是 BGR 格式。最低有效字节是红色通道的强度,下一个有效字节是绿色通道,然后是蓝色。

    查看值的十六进制表示会更容易理解,因为可以轻松地将值分解为三个通道。考虑小数15663114,你说它是深蓝色。转换为十六进制是EF000A。颜色通道具有以下强度:

    蓝色:EF 绿色:00 红色:0A

    其他颜色值可以用类似的方式理解。

    现在,可能还有一个 Alpha 通道来表示透明度级别。这将是 4 个字节中最重要的。您引用的值99999999 是十六进制的05F5E0FF。这将具有05 的 alpha 值。是否尊重该通道取决于解释颜色值的代码。

    【讨论】:

    • 非常感谢。奇怪的是我在任何地方都找不到转换器。处理这些是不是很罕见?
    • 周围有无数个 hex 到颜色转换器,你只需要知道如何使用 hex
    • FWIW,EF 的蓝色值并不暗,实际上几乎是完全蓝色的。但是如果 alpha = 0,那么它根本看不到,所以我怀疑 alpha 值在那里起作用。
    • FWIW,如果十六进制有问题,程序员模式下的 Windows 计算器可以在十六进制(又名十六进制)、十进制和二进制之间进行转换。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    • 2014-09-03
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多