【问题标题】:[PHP]Converting RGB or HEX To "Long Int" Color[PHP]将 RGB 或 HEX 转换为“Long Int”颜色
【发布时间】:2010-09-03 00:42:01
【问题描述】:

需要将 RGB 或 HEX 颜色转换为“Long Int”以供其他使用此格式的程序使用。但不确定“Long Int”颜色格式的细节。

可以使用此颜色选择器http://hide-inoki.com/en/soft/chunter/index.html 手动生成“Long Int”值,但最好使用 php 函数。

hexdec 会为某些 HEX 值('FFFFFF'、'2F2F2F')生成正确的“Long Int”,但不会为其他值('123456')生成正确的“Long Int”。

【问题讨论】:

    标签: php hex rgb long-integer color-picker


    【解决方案1】:

    你应该可以使用PHP's hexdec函数。

    hexdec('FFFFFF'): 16777215
    hexdec('123456'): 1193046
    

    等等

    您是说这些值不正确吗?还是您错误地使用了 dechex?


    根据您的评论进行更新,其中颜色“#123456”应为“Long Int”格式的“5649426”:

    以 16 为基数的 5649426 是 0x563412,因此很明显您的格式需要 BGR 而不是 RGB。

    所以只需先从“RGB”字符串构建一个“BGR”字符串,然后将其输入到 hexdec:

    $rgb = '123456';
    $bgr = substr($rgb,4,2) . substr($rgb,2,2) . substr($rgb,0,2);
    print hexdec($bgr);
    

    产生5649426

    【讨论】:

    • 这是一个错字,我的错。 “Long Int”中的 R18、G52、R86/#123456 == 5649426,这就是十六进制结果与颜色选择器转换不匹配的地方。 ://
    • 太好了,我想知道颜色顺序是否与标准 RGB 不同,但没有弄乱它,谢谢!
    猜你喜欢
    • 2019-02-08
    • 2012-02-06
    • 2018-06-16
    • 2012-03-05
    • 2017-07-26
    • 2014-03-01
    • 1970-01-01
    • 2015-07-04
    相关资源
    最近更新 更多