public Bitmap GetImage() { if (cachedImage != null) { return(cachedImage); } cachedImage = new Bitmap(width * 16, height * 16); Graphics g = Graphics.FromImage(cachedImage); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { g.DrawImageUnscaled(area.GetTileImage(GetTile(x, y)), x * 16, y * 16); } } g.Dispose(); return(cachedImage); }