トップへ(mam-mam.net/)

文字の輪郭(袋文字)を描画する ~Delphiソースコード集

検索:

文字の輪郭(袋文字)を描画する ~Delphiソースコード集

BeginPath、EndPathとStrokePathまたはStrokeAndFillPathで文字の輪郭を描画

文字の輪郭のみを描画する場合

procedure TForm1.Button1Click(Sender: TObject);
begin
  //幅と高さを設定する
  Image1.Picture.Bitmap.Width:=600;
  Image1.Picture.Bitmap.Height:=80;
  //白色で塗り潰す
  Image1.Picture.Bitmap.Canvas.Brush.Style:=bsSolid;
  Image1.Picture.Bitmap.Canvas.Brush.Color:=clWhite;
  Image1.Picture.Bitmap.Canvas.FillRect(Image1.Picture.Bitmap.Canvas.ClipRect);
  //フォントの設定
  Image1.Picture.Bitmap.Canvas.Font.Name:='MS ゴシック';
  //フォントサイズを設定する(ピクセル単位)
  Image1.Picture.Bitmap.Canvas.Font.Height:=-50;

  //パスブラケットを開く
  BeginPath(Image1.Picture.Bitmap.Canvas.Handle);
  //背景モードを透明にする
  Image1.Picture.Bitmap.Canvas.Brush.Style:=bsClear;
  //文字列を描く
  Image1.Picture.Bitmap.Canvas.TextOut(10,10,'文字の輪郭を描画');
  //パスブラケットを閉じる
  EndPath(Image1.Picture.Bitmap.Canvas.Handle);

  //ペンの色とスタイルと幅を指定する
  Image1.Picture.Bitmap.Canvas.Pen.Color:=clRed;
  Image1.Picture.Bitmap.Canvas.Pen.Style:=psSolid;
  Image1.Picture.Bitmap.Canvas.Pen.Width:=1;

  //パスを描画する
  StrokePath(Image1.Picture.Bitmap.Canvas.Handle);
end;

文字の輪郭を描画し内部を塗りつぶす場合

procedure TForm1.Button2Click(Sender: TObject);
begin
  //幅と高さを設定する
  Image1.Picture.Bitmap.Width:=600;
  Image1.Picture.Bitmap.Height:=80;
  //白色で塗り潰す
  Image1.Picture.Bitmap.Canvas.Brush.Style:=bsSolid;
  Image1.Picture.Bitmap.Canvas.Brush.Color:=clWhite;
  Image1.Picture.Bitmap.Canvas.FillRect(Image1.Picture.Bitmap.Canvas.ClipRect);
  //フォントの設定
  Image1.Picture.Bitmap.Canvas.Font.Name:='MS ゴシック';
  //フォントサイズを設定する(ピクセル単位)
  Image1.Picture.Bitmap.Canvas.Font.Height:=-50;

  //パスブラケットを開く
  BeginPath(Image1.Picture.Bitmap.Canvas.Handle);
  //背景モードを透明にする
  Image1.Picture.Bitmap.Canvas.Brush.Style:=bsClear;
  //文字列を描く
  Image1.Picture.Bitmap.Canvas.TextOut(10,10,'文字の輪郭と内部を描画');
  //パスブラケットを閉じる
  EndPath(Image1.Picture.Bitmap.Canvas.Handle);

  //ペンの色とスタイルと幅を指定する
  Image1.Picture.Bitmap.Canvas.Pen.Color:=clRed;
  Image1.Picture.Bitmap.Canvas.Pen.Style:=psSolid;
  Image1.Picture.Bitmap.Canvas.Pen.Width:=1;
  //ブラシの色とスタイルを設定する
  Image1.Picture.Bitmap.Canvas.Brush.Color:=clBlue;
  Image1.Picture.Bitmap.Canvas.Brush.Style:=bsDiagCross;

  //パスとパスの内部を描画する
  StrokeAndFillPath(Image1.Picture.Bitmap.Canvas.Handle);
end;