用PHP转换delphi TColor

时间:2009-07-14 13:22:11

标签: php delphi

我有一些颜色似乎来自Delphi TColor变量(例如8388608,128,12632256)。我需要使用PHP脚本将这些颜色转换为rgb值。如何在PHP中完成?

1 个答案:

答案 0 :(得分:9)

Delphi TColor类型是一个整数,其位包含实际的RGB值,如下所示:

ssBBGGRR

提取RGB值:

您可以通过AND0xFF逐位进行过滤,同时将位移到右侧。

德尔福代码:

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 部分包含系统颜色索引。