0

我想使用带有半透明颜色(例如 ARGB=128,0,0,0)的Graphics.FillRectangleGraphics.Clear来使Graphics对象的整个区域变暗,除了一些指定的(矩形)区域:

在此处输入图像描述

我知道这可以通过四个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 回答