public IMask Load(bool[,] mask, string id, bool inverseMask = false, Color?debugDrawColor = null, string saveMaskToFile = null)
        {
            IBitmap      image  = _bitmapLoader.Load(mask.GetLength(0), mask.GetLength(1));
            List <Point> points = new List <Point>(image.Width * image.Height);

            for (int row = 0; row < mask.GetLength(1); row++)
            {
                for (int col = 0; col < mask.GetLength(0); col++)
                {
                    if (mask[col, row])
                    {
                        if (!inverseMask)
                        {
                            points.Add(new Point(col, row));
                        }
                    }
                    else if (inverseMask)
                    {
                        points.Add(new Point(col, row));
                    }
                }
            }
            image.SetPixels(Colors.Black, points);
            return(load(null, image, false, debugDrawColor, saveMaskToFile, id));
        }