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

FloodFillで画像を境界線まで塗り潰す、指定色を塗り潰す ~Delphiソースコード集

検索:

FloodFillで画像を境界線まで塗り潰す、指定色を塗り潰す ~Delphiソースコード集

DelphiのCanvas.FloodFillで、Bitpmapを指定した境界色までの領域を現在Brushで塗りつぶし、 指定した色で塗りつぶされている領域を現在のBrushで塗りつぶし

1.Canvas.FloodFill関数の第4引数で「fsBorder」を指定する場合

黒の境界線の内側領域を赤に塗りつぶす
procedure TForm1.Button1Click(Sender: TObject);
begin
  //指定した境界色までの領域を現在Brushで塗りつぶし
  //bmp.Canvas.FloodFill(
  //  基準x,基準y,境界色, fsBorder
  //);

  //ブラシの色を赤に設定する
  Image1.Picture.Bitmap.Canvas.Brush.Color:=clRed;
  //黒色の境界の内側領域を、赤に塗る
  Image1.Picture.Bitmap.Canvas.FloodFill(
    60, 100, clBlack, fsBorder);
end;


2.Canvas.FloodFill関数の第4引数で「fsSurface」を指定する場合

スカイブルー色の領域を赤に塗りつぶす
procedure TForm1.Button2Click(Sender: TObject);
begin
  //指定した色で塗りつぶされている領域を現在のBrushで塗りつぶし
  //bmp.Canvas.FloodFill(
  //  基準x,基準y,塗りつぶされている色, fsSurface
  //);

  //ブラシの色を赤に設定する
  Image1.Picture.Bitmap.Canvas.Brush.Color:=clRed;
  //スカイブルー色の領域を、赤に塗る
  Image1.Picture.Bitmap.Canvas.FloodFill(
    60, 100, clSkyBlue, fsSurface);
end;