Как скопировать содержимое DeviceContext.Target в Image?
Мне необходимо замерить время копирование данных в Image. Затем вызвать функцию WriteFrame с этим Image.
Вот часть кода. Как сделать именно копирование данных? Судя по времени, происходит копирование ссылки, а не данных.
using d2 = SharpDX.Direct2D1;
private List<d2.DeviceContext> dvContext;
...
Stopwatch _stwp = new Stopwatch();
_stwp.Start();
// copy to Image
d2.Image img = dvContext[writeFromContext].Target;
_stwp.Stop();
System.Diagnostics.Trace.WriteLine("To Image " +_stwp.ElapsedTicks.ToString());
_stwp.Restart();
// save to file
imageEncoder.WriteFrame(img, bitmapFrameEncode, new wic.ImageParameters(d2PixelFormat, 96, 96, 0, 0, outputImageSize.Width, outputImageSize.Height));
_stwp.Stop();
System.Diagnostics.Trace.WriteLine("WriteFrame " + _stwp.ElapsedTicks.ToString());
При приравнивании ссылочных типов, копируется только ссылка. Эт факт.
Для копирования всего объекта используется метод: Clone().
Не уверен что конкретно в данном случае он будет работать (не работал с этой библиотекой), но по идее должно выглядеть так:
d2.Image img = dvContext[writeFromContext].Target.Clone();
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости