我已经看到很多问题询问如何绘制透明图像,但我的情况恰恰相反。我有一个TPicture
加载任何文件类型的地方,包括PNG
. 然后我直接在 a的画布中阅读TPicture.Graphic
和调用。但是,在绘制图像时,它会继承原始图像的透明度。Draw
TBitmap
PNG
目前的代码很简单,只是...
MyPicture.LoadFromFile(SomeFilename);
MyBitmap.Canvas.StretchDraw(SomeRect, MyPicture.Graphic);
现在的问题是我正在绘制的画布已经有一个图像,并且这个 PNG 被绘制在它的一部分上。当 PNG 具有透明背景时,通常显示为白色。但是,由于它直接在画布上绘制透明图形,因此这些区域保持透明。
PNG
仅使用画布绘制方法时,如何在没有原始透明度的情况下将 Graphic 直接绘制到画布上?我不想创建太多图形对象并绘制太多次,因此我上面只有 2 行代码。我希望有一种方法可以BitBlt
为此目的使用一些特殊机制。