protected void GenerateMask()
{
if (MaskMap != null)
{
MaskMap.Dispose();
}
using (var maskImage = new ImageSurface(Format.Argb32, Image.Width, Image.Height))
{
using (var cr = new Context(maskImage))
{
cr.SetSourceRGB(0, 0, 0);
cr.Operator = Operator.Clear;
cr.Paint();
cr.Operator = Operator.Source;
cr.SetSource(Image, 0, 0);
cr.Rectangle(new Cairo.Rectangle(0, 0, Image.Width, Image.Height));
cr.Paint();
}
MaskMap = Gdk.CairoHelper.RegionCreateFromSurface(maskImage);
}
}