我有一些颜色似乎来自Delphi TColor变量(例如8388608,128,12632256).我需要使用PHP脚本将这些颜色转换为rgb值.如何在PHP中完成?
Delphi TColor
类型是一个整数,其位包含实际的RGB值,如下所示:
ssBBGGRR
Run Code Online (Sandbox Code Playgroud)
提取RGB值:
您可以通过执行逐位筛选出部分AND
具有0xFF
,在换挡位到右侧.
德尔福代码:
R := Color and $FF;
G := (Color shr 8) and $FF;
B := (Color shr 16) and $FF;
Run Code Online (Sandbox Code Playgroud)
PHP代码:
R = Color & 0xFF;
G = (Color >> 8) & 0xFF;
B = (Color >> 16) & 0xFF;
Run Code Online (Sandbox Code Playgroud)
关于系统颜色的警告:
有一些特殊的颜色来自系统颜色.(如按钮和窗口颜色)
这些颜色实际上没有设置有效的RGB值.您可以通过检查前八位来检测它们.如果它们不为零,则表示您具有特殊的系统颜色.您还可以将颜色转换为整数.如果是负数,那就是系统颜色.
在这种情况下,R部分包含系统颜色索引.