Delphi:32位图像无法在Glass Form上正确显示

时间:2011-07-21 04:47:46

标签: image delphi frame aero-glass

我在TImage中有一个PNG(32位)图像。表格有一个玻璃框架。图片背景为黑色,不透明。如何解决?

Delphi 2010.

感谢。

2 个答案:

答案 0 :(得分:7)

作为解决方法,您可以将png图像的位更改为32。

检查此样本

左图像是8位的PNG,另一个是32位。

enter image description here

答案 1 :(得分:0)

你应该忘记TImage,因为它不能正确处理blit。您需要使用GDI +手动在表单上绘制图像。那只是因为“玻璃”。如果你把它放在TImage上(或实际上显示在它里面的TGraphic!),“背景”(玻璃)将被复制到内存中,并且在其上,将组成一个透明图形(png?),并且他形成了。不幸的是,当你背上它时,“背景”(玻璃)会变成黑色。

所以,使用GDI +(google it)和blt使用bitmap.handle。确保位图是透明的(即32位并设置适当的属性)。

与玻璃上的字体相同,顺便说一句。你必须自己绘制东西(可能来自自定义组件?)。您可以找到一些已经执行此操作的组件,但是......就像http://development.mwcs.de/glowlabel.html