gpt4 book ai didi

delphi - 如何将 ARGB 值从字符串转换为颜色?

转载 作者:行者123 更新时间:2023-12-03 18:34:17 25 4
gpt4 key购买 nike

我正在尝试使用 MakeColor GDIPAPI 单元中的方法,但来自 int 的转换至 byte没有返回给我正确的值。

例子

var
argbStr: string;
A, R, G, B: Byte;
begin
argbStr := 'ffffcc88';
A := StrToInt('$' + Copy(AValue, 1, 2));
R := StrToInt('$' + Copy(AValue, 3, 2));
G := StrToInt('$' + Copy(AValue, 5, 2));
B := StrToInt('$' + Copy(AValue, 7, 2));
Result := MakeColor(A, R, G, B);
end;

我究竟做错了什么?

最佳答案

字符串中的颜色分量的顺序与 ARGB 中的顺序相同。值(value)。因此,在将它们与 MakeColor 组合之前,您不需要将它们分开。 .您可以直接进行转换:

function StringToARGB(const argbStr: string): GDIPAPI.ARGB;
begin
Result := ARGB(StrToInt('$' + argbStr));
end;

当 alpha 分量大于 127 时,类型转换对于抑制范围检查错误是必要的; StrToInt返回一个有符号整数,但 ARGB是无符号类型。

关于delphi - 如何将 ARGB 值从字符串转换为颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2691382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com