Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

True-Type-Schriftart mit Umrandung darstellen (Outlined)

  Alt 7. Jun 2007, 06:43
In diesem Beitrag zeigt Hawkeye219 einen Möglichen Weg zur Darstellung einer umrandeten Schrift, deren Schritart eine TrueType-Font sein muss. Diese Darstellung ist auch bekannt als "outlined" (im Anhang befindet sich ein Screenshot).

Delphi-Quellcode:
procedure DrawOutlinedText (aCanvas: TCanvas;
                            aPosX, aPosY: Integer;
                            aText: string;
                            aFillColor: TColor;
                            aBorderColor: TColor;
                            aBorderWidth: Integer = 1);
var
  DC : HDC;
  OldMode : Integer;
begin
  aCanvas.Brush.Color := aFillColor;
  aCanvas.Pen.Color := aBorderColor;
  aCanvas.Pen.Width := aBorderWidth;

  DC := aCanvas.Handle;
  OldMode := SetBkMode(DC, TRANSPARENT);

  BeginPath(DC);
  aCanvas.TextOut (aPosX, aPosY, aText);
  EndPath(DC);
  FillPath(DC);

  BeginPath(DC);
  aCanvas.TextOut (aPosX, aPosY, aText);
  EndPath(DC);
  StrokePath(DC);

  SetBkMode(DC, OldMode);
end;
Ein Beispielaufruf wäre folgender:

Delphi-Quellcode:
procedure TForm1.Button11Click (Sender: TObject);
begin
  Canvas.Font.Name := 'Arial';
  Canvas.Font.Size := 96;
  DrawOutlinedText (Canvas, 8, 8, 'Hallo Welt!', clYellow, clBlue, 2);
end;
Weitere Suchbegriffe: Rahmen, Umrandung
Miniaturansicht angehängter Grafiken
truetype_font_outlined_594.jpg  
  Mit Zitat antworten Zitat