【发布时间】:2018-12-16 06:10:22
【问题描述】:
只是想弄清楚如何在 C++ Builder 中使用 DrawTransparent 来绘制带有 alpha 通道的位图或 tbitmap,以便绘制的图像与背景图像是半透明的。
我在这个网站上到处找遍了所有地方,但除了一个说明这个和 DrawTransparentBitmap 存在的注释之外找不到任何东西..
在帮助中列出如下:
virtual void __fastcall DrawTransparent(TCanvas* ACanvas, const
System::Types::TRect &Rect, System::Byte Opacity);
但是没有代码示例。编译器无法识别过程名称,也不会作为 tbitmap 的方法出现...
我还是 C++ 新手,我真的可以在这方面寻求帮助...
【问题讨论】:
-
如果编译器连函数都认不出来,那么使用它很可能会出现严重问题。我的直接建议是考虑改用
AlphaBlend。 -
DrawTransparent是一种受保护的方法,因此您不能直接调用它,但也许这可以工作destination_bitmap->Canvas->Draw(0, 0, source_bitmap->Picture->Graphic, 50);您可能也需要这样做source_bitmap->Transparent = true;。自己没有测试过。 -
我确定我做错了什么.. C++ 的细微差别我仍然不明白.. 可能有某种方式来声明它或其他什么......它应该成为现有图形系统的一部分,或者看起来如此 - 就像 StretchDraw() 所以我认为它会更容易集成......但我会研究 AlphaBlend,谢谢。
-
什么是受保护的方法?感谢所有信息帮助...
-
这里很好地描述了受保护的成员(方法或变量)是什么:access specifiers @ cppreference。