Как получить изображение с canvas и записать его в переменную?

 public static void ToImageSource(Canvas canvas, string filename)
        {
            RenderTargetBitmap bmp = new RenderTargetBitmap((int)canvas.ActualWidth, (int)canvas.ActualHeight, 96d, 96d, PixelFormats.Pbgra32);
            canvas.Measure(new Size((int)canvas.ActualWidth, (int)canvas.ActualHeight));
            canvas.Arrange(new Rect(new Size((int)canvas.ActualWidth, (int)canvas.ActualHeight)));
            bmp.Render(canvas);
            PngBitmapEncoder encoder = new PngBitmapEncoder();
            encoder.Frames.Add(BitmapFrame.Create(bmp));
          
            using (FileStream file = File.Create(filename))
            {
                encoder.Save(file);
            }
        }

Я нашел в интернете функцию для сохранения изображения с канваса в файл.Но у меня появилась еще необходимость в том,чтобы сохранять изображения канваса по мере отрисовки каждой фигуры.Вообщем мне нужен массив изображений.Тем самым я сохраняю состояния канваса и могу отменить действия.Но я не знаю в какой переменной можно хранить изображение и как потом его присвоить канвасу.Судя по функции, изображение хранится в bmp или я что-то не так понял?Как его потом присвоить канвасу?


Ответы (0 шт):