我在imglist: TImageList index 0上有一个图片, 在某些可以使用ImageList的控件比如Toolbutton指定ImageIndex=0可以正确的透明显示
现在,我试图在运行期动态给Image1: TImage载入TImageList上面同一个index 0上面的图象,使用了如下方法
1.
imglist.GetBitmap(0, Image1.Picture.Bitmap);
2.
定义Bitmap: TBitmap; MS: TMemoryStream;
Bitmap := TBitmap.Create;
MS := TMemoryStream.Create;
imglist.GetBitmap(0, Bitmap);
Bitmap.SaveToStream(MS);
Image1.Picture.Bitmap.LoadFromStream(MS);
3.
Bitmap := TBitmap.Create;
imglist.GetBitmap(0, Bitmap);
Image1.Picture.Assign(Bitmap);
以上方法都能显示,但是背景变成白色,而不是希望的透明
所有的Image1.Picture.Bitamp.Transparent等属性我都有尝试过,但是背景都是白色
请问这是为什么(请大家试一下)
9 个解决方案
#1
你是不是还安装了Raise控件?
#2
应该不难,你在Image1获取图片以后再设置
Image1.Transparent := True试试呢?
#3
汗
#4
我也测试过了,确实不能透明
#5
可以实现。方法是:
首先设置ImageList的Masked属性为False
然后再向ImageList中添加位图
就可以了。
问题在于ImageList对位图做了Mask处理
首先设置ImageList的Masked属性为False
然后再向ImageList中添加位图
就可以了。
问题在于ImageList对位图做了Mask处理
#6
帮着顶一个
#7
enenenenenenen
#8
Image1.Transparent := True
这个应该可以实现的 啊
这个应该可以实现的 啊
#9
问题解决了,
Imagelist先吧Masked设置为false,然后一定要重新载入你的图标,再画到image里就透明了。
Imagelist先吧Masked设置为false,然后一定要重新载入你的图标,再画到image里就透明了。
#1
你是不是还安装了Raise控件?
#2
应该不难,你在Image1获取图片以后再设置
Image1.Transparent := True试试呢?
#3
汗
#4
我也测试过了,确实不能透明
#5
可以实现。方法是:
首先设置ImageList的Masked属性为False
然后再向ImageList中添加位图
就可以了。
问题在于ImageList对位图做了Mask处理
首先设置ImageList的Masked属性为False
然后再向ImageList中添加位图
就可以了。
问题在于ImageList对位图做了Mask处理
#6
帮着顶一个
#7
enenenenenenen
#8
Image1.Transparent := True
这个应该可以实现的 啊
这个应该可以实现的 啊
#9
问题解决了,
Imagelist先吧Masked设置为false,然后一定要重新载入你的图标,再画到image里就透明了。
Imagelist先吧Masked设置为false,然后一定要重新载入你的图标,再画到image里就透明了。