然而…
我有一个包含带Alpha的png图像的图像列表.我想使用TImage将其中一个放在表单上.我如何做到这一点并使图像很好地合成?
作为问题的一个例子我面对下面的代码无法正常工作,并产生显示的效果:
ImageList.GetBitmap(index,Image1.Picture.Bitmap);
(来源:clip2net.com)
再解释一下:
在表单上删除timage,并在设计时使用Picture属性加载带Alpha的PNG文件.请注意它是如何在表单上以完全透明的方式正确合成的.
现在,在设计时,添加第二个空的timage,添加一个timageList,并将相同的PNG添加到图像列表中.如何将timageList中的PNG分配给第二个timage,并使其看起来与第一个相同?
解决方法 根据我的研究,我发现timageList将图像存储为TBitmaps,因此Alpha信息在存储时丢失,并且使用timageList的当前实现无法实现您所需的功能.更新:
稍微进行一些实验并使用下面的代码,我可以使用下面的代码进行透明化.
ImageList1.colorDepth := cd32Bit;Image2.transparent := True;Image2.Canvas.Pen.Style := psClear;Image2.Canvas.Rectangle(0,Image2.WIDth+1,Image2.Height+1);ImageList1.Draw(Image2.Canvas,0);
但它看起来并不像装载的png那么漂亮.
总结以上是内存溢出为你收集整理的Delphi 2009中的PNG图像列表和图像全部内容,希望文章能够帮你解决Delphi 2009中的PNG图像列表和图像所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)