我想使用带有半透明颜色(例如 ARGB=128,0,0,0)的Graphics.FillRectangle或Graphics.Clear来使Graphics对象的整个区域变暗,除了一些指定的(矩形)区域:
我知道这可以通过四个FillRectangle调用来实现,但我想知道它是否不能更容易完成。
我知道简单的剪辑(Graphics.SetClip),但这允许我剪辑指定区域之外的所有内容,我想实现相反的效果。
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