C# wpf Сохранение изображений обрезанного холста в видео занимает много времениC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 C# wpf Сохранение изображений обрезанного холста в видео занимает много времени

Сообщение Anonymous »

Я прикрепил видео к холсту. На холсте пользователь может нарисовать линию, прямоугольник и т. д., и эти нарисованные объекты будут скрыты или видимы в зависимости от временного интервала. Затем пользователь может сохранить это видео с нарисованным объектом. Для этой цели я использовал следующий код. Проблема в том, что сохранение занимает время, почти равное длине видео. Как я могу сократить время сохранения или есть ли другой быстрый способ сохранить обрезанный холст с нарисованным объектом?
Я использовал библиотеку OpenCVSharp для создания видео из обрезанного холста
Application.Current.Dispatcher.Invoke(() =>
{
canvas.VideoPlayer.mp1.Clock.Controller.SeekAlignedToLastTick(timeSpan1, System.Windows.Media.Animation.TimeSeekOrigin.BeginTime);
});

var writer = new VideoWriter(fileName, OpenCvSharp.FourCC.DIVX, frameRate, new OpenCvSharp.Size(vidSize.Width, vidSize.Height));

for (int i = startFrame; i < endFrame; i++)
{
CroppedBitmap croppedImage = new();

Application.Current.Dispatcher.Invoke(() =>
{
canvas.VideoPlayer.mp1.Position.Add(frameTimeInterval);
canvas.VideoPlayer.ShowHideToolsSaveAs(frame);
// --------> some time here it shows insufficient memeory when video is around 2 mins
RenderTargetBitmap rtb = new RenderTargetBitmap(width, height, 96d, 96d, PixelFormats.Default);
rtb.Render(canvas);

// create cropped image
croppedImage = new CroppedBitmap(rtb, vidSize);
});

if (croppedImage != null)
{
System.Drawing.Bitmap bmp = new(width, height);
byte[] byteArray = new byte[1];

Application.Current.Dispatcher.Invoke(() =>
{
bmp = BitmapFromSource(croppedImage);
byteArray = BitmapToByteArray(bmp);
});

Mat mat = new();
mat = BitmapConverter.ToMat(bmp);
writer.Write(mat);
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... -much-time
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как найти точки соприкосновения линии с границами холста после поворота холста
    Гость » » в форуме Javascript
    0 Ответы
    107 Просмотры
    Последнее сообщение Гость
  • Макет меню вне холста не работает из-за холста на iOS
    Anonymous » » в форуме CSS
    0 Ответы
    123 Просмотры
    Последнее сообщение Anonymous
  • Макет меню вне холста не работает из-за холста на iOS
    Anonymous » » в форуме IOS
    0 Ответы
    64 Просмотры
    Последнее сообщение Anonymous
  • Как поднять элемент холста над элементом окна холста
    Anonymous » » в форуме Python
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Как поднять элемент холста над элементом окна холста
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»