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;