可以判断位图某点是否为透明色;
你需要利用TBitmap的TransParent属性和TransParentColor属性进行设置,
当然还有TransParentMode属性来进行比较
procedure TForm1.Button1Click(Sender: TObject);
var
Bitmap : TBitMap;
begin
Bitmap := TBitmap.Create;
try
with Bitmap do begin
LoadFromFile('f:/图片/aimasic.bmp');
//首先显示原图
TransparentMode := tmAuto; //这是系统默认的透明色
Form1.Canvas.Draw(0,0,BitMap);
//下面是根据自己设定的透明色将位图透明处理
Transparent := True;
TransParentColor := BitMap.canvas.pixels[80,80];//透明色为该点的颜色
Form1.Canvas.Draw(500,0,BitMap); //为便于比较,显示透明处理后的位图
end;
finally
Bitmap.Free;
end;
end;
所以,你如果想知道某点是否为透明,你需要首先知道你设置的透明色。
当然,如果你没有设置透明色,那么系统在TransParentMode为tmAuto时,默认透明色
为位图最右下角的象素颜色。此时你只要判断你取的点的颜色是否与最右下角相等就
知道是否为透明色了。
OK?