我正在为我的项目编写简单的图像编辑器。
在那里你可以看到编辑器中的图像:
在TImage之上,我放置了一些TLabel。
在预览中,您可以在图像上看到绘制TLabels的结果:
为了绘制TLabels,我写了这段代码:
procedure TPrintForm.BuildPreview(aSsignTo: TImage);
var
Img: TBitmap;
i: Integer;
begin
Img := TBitmap.Create;
try
Img.Assign(fSrcBitmap);
for i := 0 to Count - 1 do
begin
Img.Canvas.Font := Items[i].Text.Font;
Img.Canvas.TextOut(Items[i].Text.BoundsRect.TopLeft.X - Items[i].Text.Font.Size,
Items[i].Text.BoundsRect.TopLeft.Y - Items[i].Text.Height -
Items[i].Text.Font.Size, Items[i].Text.Caption);
end;
aSsignTo.Picture.Assign(Img);
finally
FreeAndNil(Img);
end;
end;
结果我得到了图像,其中绘制的TLabel在文本下具有白色背景。没有它如何绘制TLabel?
答案 0 :(得分:17)
Img.Canvas.Brush.Style := bsClear;
答案 1 :(得分:4)
感谢所有人的回答。 我在这里找到了解决方案:
SetBkMode(Img.Picture.Bitmap.Canvas.Handle,TRANSPARENT);
问题解决了。