从TColor中提取R、G、B字节值

问题描述 投票:0回答:1

在Delphi中,是否有一个现成的函数可以从TColor变量中提取R,G,B作为字节?

我在网上找到了下面这个,但好像很奇怪:

  procedure ColorToRGB(iColor: TColor; var R, G, B: Byte);
    function HexToInt(const Value: string): Integer;
    begin
      Result := StrToInt('$' + Value);
    end;
  var
    s: string;
  begin
    s := IntToHex(iColor, 6);
    R := HexToInt(AnsiRightStr(s, 2));
    G := HexToInt(AnsiLeftStr(AnsiRightStr(s, 4), 2));
    B := HexToInt(AnsiLeftStr(s, 2));
  end;
delphi
1个回答
0
投票

显示的代码太过杀伤力并且效率低下。使用

ColorToRGB()
,然后将结果传递给
GetRValue()
,GetGValue()
, 
GetBValue()`。

© www.soinside.com 2019 - 2024. All rights reserved.