gpt4 book ai didi

image - Delphi XE5 Firemonkey - 如何使图像背景透明运行时?

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

我正在为 Firemonkey 重写我的一个旧游戏,最初是用 Delphi 2010 编写的。那些日子很容易使用 TImage.Transparent := true 使游戏片段的背景透明,但在 Firemonkey 中我找不到太容易了。我了解到设计时允许您轻松设置 TransparentColor,然后对象背景就像您想要的那样透明,但是如何在运行时实现这一点?我正在创建很多动态 TImage 对象,在游戏中充当片段,显然需要它们具有透明背景。任何人都可以在这里帮助我吗?提前致谢。

最佳答案

FireMonkey 图像使用每像素 32 位的架构,其中红色、绿色和蓝色各 8 位,另外还有 8 位用于透明度,也称为 alpha channel 。如果 alpha channel 的值为 #FF,像素将不透明,#00 将完全透明,介于两者之间的值将相应地改变透明度。

因此,FireMonkey 中的颜色(实际上是 TAlphaColor)可以设置为 8 位十六进制数,其中位映射到 #AARRGGBB,其中 AA 是透明度/alpha channel 。

因此,#FF00FF00 是不透明的绿色,#88FF0000 是半透明的红色。任意前两位为#00的颜色值,完全透明。

FireMonkey 包括预定义常量 claNull 以实现完全透明的颜色。

您还可以使用 TAlphaColorRec 记录访问 TAlphaColor 变量的各个颜色,使用它的字段 A、R、G 和 B。例如

红色 := TAlphaColorRec(MyColour).R;

TAlphaColorRec(MyColour).A := #00;

关于image - Delphi XE5 Firemonkey - 如何使图像背景透明运行时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22760246/

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