如果背景为均一色,你可以用TBitmap的属性TransparentColor指定其为透明色,然后再设
Transparent := TRUE,再画出来就是透明的了。
如果不指定TransparentColor色,系统缺省认为左上角的象素点为透明色。
参见下面的例子
procedure TForm1.Button1Click(Sender: TObject);
var
Bitmap : TBitMap;
begin
Bitmap := TBitmap.Create;
try
with Bitmap do begin
LoadFromFile('c:/Program Files/Common Files/Borland Shared/Images/Splash/256color/factory.bmp');
Transparent := True;
TransParentColor := BitMap.canvas.pixels[50,50];
Form1.Canvas.Draw(0,0,BitMap);
TransparentMode := tmAuto; // Transparent color now is clDefault = TColor($20000000);
Form1.Canvas.Draw(50,50,BitMap);
end;
finally
Bitmap.Free;
end;
end;