我在TImage中有一个PNG(32位)图像。表格有一个玻璃框架。图片背景为黑色,不透明。如何解决?
Delphi 2010.
感谢。
答案 0 :(得分:7)
作为解决方法,您可以将png图像的位更改为32。
检查此样本
左图像是8位的PNG,另一个是32位。
答案 1 :(得分:0)
你应该忘记TImage,因为它不能正确处理blit。您需要使用GDI +手动在表单上绘制图像。那只是因为“玻璃”。如果你把它放在TImage上(或实际上显示在它里面的TGraphic!),“背景”(玻璃)将被复制到内存中,并且在其上,将组成一个透明图形(png?),并且他形成了。不幸的是,当你背上它时,“背景”(玻璃)会变成黑色。
所以,使用GDI +(google it)和blt使用bitmap.handle。确保位图是透明的(即32位并设置适当的属性)。
与玻璃上的字体相同,顺便说一句。你必须自己绘制东西(可能来自自定义组件?)。您可以找到一些已经执行此操作的组件,但是......就像http://development.mwcs.de/glowlabel.html。