Jer*_*dge 2 delphi png drawing transparent delphi-xe2
我已经看到很多问题,询问如何绘制透明图像,但我的情况恰恰相反.我有一个TPicture加载任何文件类型的地方,包括PNG.然后我直接阅读TPicture.Graphic并Draw直接在TBitmap画布上打电话.但是,当绘制图像时,它会延续原始PNG图像的透明度.
目前的代码非常简单,只是......
MyPicture.LoadFromFile(SomeFilename);
MyBitmap.Canvas.StretchDraw(SomeRect, MyPicture.Graphic);
Run Code Online (Sandbox Code Playgroud)
现在的问题是我正在绘制的画布已经有一个图像,而这个PNG正在绘制它的一部分.当PNG具有透明背景时,通常它看起来是白色的.但是,由于它直接将透明图形绘制到画布上,因此它会使这些区域保持透明.
如何PNG仅使用画布绘制方法,如何在没有原始透明度的情况下将图形直接绘制到画布上?我不想创建太多图形对象并绘制太多次,因此我上面只有2行代码.我希望我有办法BitBlt为此目的做一些特殊的机制.
在Delphi XE2中预先构建的唯一方法有缺陷,无法正常工作.相反,将空白或任何您想要的背景绘制到空白画布上.然后在顶部绘制透明图像.
如果您没有绘制到空白画布上,可以FillRect为您计划绘制png的区域调用位图画布的方法.
| 归档时间: |
|
| 查看次数: |
1351 次 |
| 最近记录: |