連続した同色の領域の塗りつぶし

解決


タメ子  2007-03-07 20:56:54  No: 135675

MS Paintの塗りつぶし(ペンキ缶をこぼしたアイコン)を実現する為の
APIや、サンプルを載せているHPがあれば、教えて頂けませんでしょうか?


魔界の仮面弁士  2007-03-07 21:45:44  No: 135676

環境も明記しましょう。

VB6であれば、ヘルプの「hDC プロパティ」の「使用例」の項を参照。


タメ子  2007-03-07 22:11:45  No: 135677

申し訳ありません。

VB6です。

魔界の仮面弁士さん、ありがとうございます。
早速、ヘルプを確認させて頂きます。


タメ子  2007-03-07 22:22:39  No: 135678

ヘルプを確認させて頂きました。

説明が不足してすみません。
例えば、MS Paintの塗りつぶしのように、マウスでクリックした箇所と同じ
色の部分を、先に選択した色に変換する。
別の色で区切られたところは変換しない。つまり、マウスでクリックした
所の色と同色の連続する部分を塗り替えるのは、どうすればよろしいですか?


魔界の仮面弁士  2007-03-07 22:50:56  No: 135679

おっと、回答が足りませんでしたか。FloodFill API まで辿りつけば、
関連情報としての ExtFloodFill も見つけられるかと思ったのですけれども。

'Pircute1.AutoRedraw = True
'Pircute1.ScaleMode = vbPixels
'Picture1.FillStyle = vbFSSolid
'Picture1.FillColor = 好きな色
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  Dim c As Long
  c = Picture1.Point(x, y)
  If c <> -1 Then
    ExtFloodFill Picture1.hdc, x, y, c, FLOODFILLSURFACE
  End If
End Sub


タメ子  2007-03-07 22:55:20  No: 135680

魔界の仮面弁士さん

申し訳ありませんでした。
とことん調べず、あせりすぎました。

ご回答頂きました内容を利用させていただきます。
ありがとうございました。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加