Я использую библиотеку Emgu для создания видео из набора изображений, большую часть времени, когда я запускаю программу, она генерирует MemoryOutOfBound Exception, часть кода используя videoWriter() показан нижеКак увеличить память, используемое настольное приложение в Visual Studio C#, чтобы избежать исключения MemoryOutOfBound
p = dp.FileName + ".avi";
VideoWriter v = new VideoWriter(p, 24, hd.Width, hd.Height, true);
string filename = "";
int iiii = 0;
for (int j = 0; j < a; j++)
{
filename="frames" + j + ".bmp";
hdd = new Bitmap(jj + "\\new1\\" + filename);
hd = new Image<Bgr, Byte>(hdd);
v.WriteFrame(hd);
}
v.Dispose();
вы также можете начать с Disposing экземпляра Bitmap в 'hdd', и я не уверен, какой тип изображения точно есть, но если он реализует IDisposable, сделайте то же самое. Сообщите о своем прогрессе. – rene
'Dispose' не мгновен, может быть, достаточно проинструктировать GC о распределении памяти (' AddMemoryPressure'/'RemoveMemoryPressure'). В противном случае вы должны вызвать 'GC.Collect' и подождать. – Sinatr
Не знаю, поможет ли это: http://wiki.tesnexus.com/index.php/2-4GB_game_memory_limits_and_solutions#LAA_in_General и https://helloacm.com/large-address-aware/ –