0

Graphics.FillRectangleまたはGraphics.Clearを半透明色 (たとえば、ARGB=128,0,0,0) で使用して、指定された (長方形の) 領域を除くGraphicsオブジェクトの領域全体を暗くしたいと思います。

ここに画像の説明を入力

これは 4 回のFillRectangle呼び出しで実現できることはわかっていますが、もっと簡単にできないのではないでしょうか。

私は単純なクリッピング ( Graphics.SetClip ) を認識していますが、これにより、指定された領域の外側にあるすべてのものをクリッピングすることができ、反対のことを実現したいと考えています。

4

1 に答える 1

4
Dim img = Bitmap.FromFile("C:\Users\Public\Pictures\Sample Pictures\Desert.jpg")

Using gfx = Graphics.FromImage(img)
    Dim r = New Rectangle(100, 150, 50, 50)
    gfx.SetClip(r, Drawing2D.CombineMode.Exclude)
    Using b = New SolidBrush(Color.FromArgb(128, 0, 0, 0))
        gfx.FillRectangle(b, New Rectangle(0, 0, img.Width, img.Height))
    End Using
    Me.PictureBox1.Image = img
End Using
于 2012-06-18T18:03:33.227 に答える