win98下用Canvas.Draw函数画图时,怎么才能不显示Tbitmap的背景色。高手快来拿分呀!(50分)

  • 主题发起人 主题发起人 yimin
  • 开始时间 开始时间
Y

yimin

Unregistered / Unconfirmed
GUEST, unregistred user!
Bmp := TbitMap.Create;
Bmp.Transparent := True;
Bmp.LoadFromFile('1.bmp');//1.bmp 是一个被景色为clTeal 的图标文件
Paintbox1.Canvas.Draw(XPos , YPos ,Bmp);
bmp.Free;

用Bmp.Transparent := True;win2000上显示正常,能去除背景颜色,
但在win98上显示不正常,整个图像都花了,希望高手指点。
 
这是98的BUG,DELPHI深度历险上有例子
 
to 张无忌
应该怎么处理呢?能否把例子贴出来或发到kmzym@21cn.com,谢谢!
 
win98 我不知道是否有问题但在winme 中可以! 估计是98的bug
 
我对图形学的很差,我记的我说的那本书上有解决办法,
 
对陈宽达的
delphi深度历险里有
98下透明帖图的做法
 
to yimin ,关于背景透明:
除了设置 Bmp.Transparent := True;外
还要注意两个属性
1.TransparentMode
2.TransparentColor

如果 TransparentMode : tmAuto (缺省), 透明色是 Bitmap 最左下角点的颜色。
如果 TransparentMode : tmFixed, 则透明色是 Bitmap.TransparentColor 中设置的颜色。

另外,Win98 在某些颜色深度的显示模式下透明色不准,可以换模式试一下。
 
后退
顶部