php - 使用 PHP 转换 delphi TColor

标签 php delphi

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

最佳答案

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

ssBBGGRR

提取 RGB 值:

您可以通过对 0xFF 按位执行 AND 来过滤掉部分,同时将位向右移动。

德尔福代码:

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

关于php - 使用 PHP 转换 delphi TColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1125347/

相关文章:

php - 如何在 wordpress 主题的下拉菜单中隐藏图像?

javascript - Html 文件保存 - 如何克服 GET 的 2K 限制。 (注意 POST 不起作用)

delphi - Delphi 中对象的 RTTI

delphi - 将 SVG 图形加载到 FireMonkey 应用程序中需要采取什么方法?

php - 使用 codeigniter 上传 Canvas 图像

php - 无法使该 PHP 表单工作

php - 如何编写查询代码以显示每个选定旅游房间类型、数量和总成本的汇总价格?

Delphi,VirtualStringTree - 类(对象)而不是记录

Delphi (XE2) : Trial - what can I do? 我的旧 Delphi 怎么样?

java - 需要从delphi应用程序读取java运行时jar文件