我想在图像上创建一个覆盖层,类似于图片中的覆盖层。
创建半透明的封面很容易,我只是创建一个与图像大小相同的矩形,并为其设置较低的alpha值。
但是我如何获得透明的“切口”?再次绘制图像只会增加其Alpha值。我需要将其显式设置为零。
var image = picOriginal.Image;
var graphics = Graphics.FromImage(image);
var color = Color.FromArgb(200, Color.Black);
var brush = new SolidBrush(color);
var transparentColor = Color.Transparent;
var transparentBrush = new SolidBrush(transparentColor);
var rectangle = new Rectangle(Point.Empty, image.Size);
graphics.FillRectangle(brush, rectangle);
graphics.FillEllipse(transparentBrush, 100, 100, 100, 150);
var bitmap = new Bitmap(image);
picGenerated.Image = bitmap;