将RGB或HEX转换为“长整型”颜色 [PHP]

3
需要将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')则不是。
1个回答

7

您应该能够使用PHP的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

那是问题中的打字错误,我的错。R18,G52,R86 /#123456 ==在“ Long Int”中等于5649426,这就是六进制结果与拾色器转换不匹配的地方。:/ - phpwns
太好了,我一直在想颜色顺序是否与标准的RGB不同,但没有尝试过,谢谢! - phpwns

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接