Я разрабатываю программу для захвата изображений с четырех камер и превращаю их в одну картинку только в стиле quad, 4 изображения в одном. И генерирование .aviAVIReader - слишком долго, чтобы сэкономить кадры
AVIReader reader = new AVIReader();
List<byte[]> ImagemMainb = new List<byte[]>();
reader.Open(_rootPath + Path.GetFileName(_arqsCam01[i]));
while (reader.Position - reader.Start < reader.Length)
{
Bitmap aux = reader.GetNextFrame();
Bitmap r = new Bitmap(aux.Width * 2, aux.Height * 2, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
using (var g = Graphics.FromImage(r))
{
g.DrawImage(aux, new Rectangle(0, 0, aux.Width, aux.Height));
ImagemMainb.Add(ImageToByte(r));
}
}
reader.Close();
reader.Dispose();
А вот метод ImageToByte
public static byte[] ImageToByte(Image img)
{
byte[] byteArray = new byte[0];
using (MemoryStream stream = new MemoryStream())
{
img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
stream.Close();
byteArray = stream.ToArray();
}
return byteArray;
}
Использование этих кодов занимает слишком много времени, чтобы закончить процесс! Когда у меня есть список из 84000 растровых изображений, в этом случае 280 видео с частотой кадров = 5, размер = 320x240, это требуется навсегда. У вас возникли бы проблемы с этим кодом или у вас был бы лучший способ?