7

私は自分のプロジェクト用にシンプルな画像エディターを書いています。

そこで、エディターで画像を見ることができます:

ここに画像の説明を入力

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を描く方法は?

4

2 に答える 2

21
Img.Canvas.Brush.Style := bsClear;
于 2013-07-30T21:26:15.227 に答える
5

答えてくれてありがとう。ここで解決策を見つけました:

SetBkMode(Img.Picture.Bitmap.Canvas.Handle,TRANSPARENT);

問題が解決しました。

于 2013-07-31T09:54:25.890 に答える