【发布时间】:2014-05-21 19:44:22
【问题描述】:
我在 FMX (FireMonkey) 的表单上有一个 TImage。我想在运行时将位图加载到 TImage 中,其中位图应该具有由位图中第一个像素的颜色定义的透明背景。此颜色可能因位图而异。
我知道如何在设计时通过对 TImage 使用 MultiResBitmap 编辑器来执行此操作。但是,我找不到任何关于如何在运行时执行此操作的示例。我是否必须手动执行此操作(获取位图中第一个像素的颜色,然后遍历所有像素并将匹配的任何像素设置为透明),还是有更简单的方法来执行此操作?
【问题讨论】:
-
您的位图使用什么像素格式?
-
您是指加载后的 TPixelFormat 值吗?对于我刚刚加载的测试位图,TImage的位图的PixelFormat值为pfA8R8G8B8。
-
图像具有 Alpha 通道。为什么要担心透明色?
-
在设计时,您可以在 MultiResBitmap 编辑器中设置“透明颜色”。例如,到 Fuschia。但是,如果我加载具有不同背景颜色的位图(例如,相当于白色),则背景不再显示为透明。我要问的是是否有一个简单的 FMX 函数调用来设置图像以将新的背景颜色显示为透明?
-
如果图片有alpha通道,那么就没有背景或透明色
标签: delphi c++builder firemonkey