2013-07-30 9 views
6

Piszę prosty edytor obrazów dla mojego projektu.Jak narysować tekst na TCanvas bez białego tła pod malowanym tekstem?

Można tam zobaczyć obraz w edytorze:

enter image description here

Przede TImage, umieściłem kilka TLabel.

W podglądzie można zobaczyć wynik rysunek TLabels na obrazek:

enter image description here

Do rysowania TLabels Napisałem ten kod:

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; 

w wyniku mam obrazu, gdzie drawed TLabel mieć białe tło pod tekstem. Jak narysować TLabel bez niego?

Odpowiedz

4

Dziękuję wszystkim za odpowiedzi. Znalazłem rozwiązanie tutaj:

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

Problem rozwiązany.

15
Img.Canvas.Brush.Style := bsClear; 
Powiązane problemy