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