如何在C++ Builder XE5跨平台中获取TAlphaColor的RGB组件?

3
我正在从VCL转换到Firemonkey(FMX)。
我想要获取TAlphaColor变量中的R、G或B值。
我曾经使用GetRValue(TColor)函数。但是,GetRValue是一个Windows GDI调用。
有没有一种跨平台的方法可以做到这一点(特别是在Windows和Mac上)?
我已经找到了一些使用Delphi和TAlphaColorRecs的示例,但我无法将代码转换为C ++。
1个回答

0

您可以使用TAlphaColorRec结构体来读取颜色通道:

TAlphaColorRec acr;
acr.Color = Color;
Byte r = acr.R;
Byte g = acr.G;
// etc.

这个类型的重要部分是 union,它的声明方式如下:

union
{
    struct
    {
        System::Byte B;
        System::Byte G;
        System::Byte R;
        System::Byte A;
    };
    struct
    {
        System::Word HiWord;
        System::Word LoWord;
    };
    struct
    {
        TAlphaColor Color;
    };
};

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