// TODO: Simultaneously draw several images, in regions that possibly overlap (with ordering) // TODO: Ability to animate multiple images at once. // TODO: This class should go away, when the interfaces for the other objects are clean enough public static void Draw(Bitmap bitmap, ImageSettings settings = null) { if (settings == null) settings = new ImageSettings(); settings.Validate(); ConsoleManager manager = new ConsoleManager(); using (IDisposable state = manager.SaveConsoleState().AsResetOnDispose()) { manager.SetForGraphics(); //manager.ResizeConsoleWindow(image.Size); ImageBuilder builder = new ImageBuilder(settings.Sampler, settings.Converter, settings.TransparencyColor.ToColor()); IImage image = builder.Build(bitmap, ConsoleManager.MaxSize); if (settings.ImageCropStart.HasValue || settings.ImageCropSize.HasValue) image = new ImageRegion(image, settings.ImageCropStart, settings.ImageCropSize); ConsoleRegion region = new ConsoleRegion(settings.ConsoleStart, settings.ImageMaxSize, settings.RenderStrategy); region.Draw(image.GetBuffer(0)); } }