private void CreateMask(string filename, Image testImage, Rectangle maskRectangle) {
     var mask = new Bitmap(testImage.Width, testImage.Height);
     mask.CreateMask(maskRectangle);
     using (var graphics = Graphics.FromImage(mask)) {
         using (var crop = testImage.Crop(maskRectangle)) {
             graphics.DrawImage(crop, maskRectangle, new Rectangle(0,0,crop.Width, crop.Height), GraphicsUnit.Pixel);
         }
     }
     mask.Save(Path.Combine(Path.GetDirectoryName(filename) + "", Path.GetFileNameWithoutExtension(filename) + ".mask.png"), ImageFormat.Png);
 }
        protected Image CreateMask(Image image, Rectangle maskRectangle)
        {
            var mask = AForge.Imaging.Image.Clone((Bitmap)image, PixelFormat.Format24bppRgb);

            using (var graphics = Graphics.FromImage(mask)){
                using (var crop = image.Crop(maskRectangle)){
                    graphics.DrawImage(crop, maskRectangle, new Rectangle(0, 0, crop.Width, crop.Height), GraphicsUnit.Pixel);
                    graphics.DrawRectangle(new Pen(new SolidBrush(Color.Red), 3), maskRectangle);
                }
            }
            return(mask);
        }