日期:2014-05-18  浏览次数:20986 次

写屏幕录像,调用aviwriter报错“内存不足”的问题
出问题的源代码:
for (int i = 0; i < al.Count; i++)
  {
  //获得图像
  Bitmap cache = new Bitmap(Image.FromFile(al[i].ToString()));
  //由于转化为avi后呈现相反,所以翻转
  cache.RotateFlip(RotateFlipType.Rotate180FlipX);
  //载入图像
  aviWriter.LoadFrame(cache);
  aviWriter.AddFrame();
  //cache.Dispose();
  }

如果只是20~30张图在al的话可以运行生成avi,如果太多了,比如超过100张它就会报错说内存不足。

同样的问题有人问过:http://topic.csdn.net/u/20100701/10/4f7480e2-d40a-4847-8c3e-51bd67f8d4b4.html
但是ls说的分段读取的方式并没有解决这个问题。

还有人这么问过:http://topic.csdn.net/u/20101231/11/ba70106e-2ccc-4554-936d-9e0a74641fa9.html
同样没有得到答案。

请问各位高手,如何解决aviwriter 内存不足的问题啊?如果是avi文件导致的如何释放内存啊?谢谢大家

------解决方案--------------------
???
自言自语
------解决方案--------------------
http://www.codeproject.com/KB/audio-video/avifilewrapper.aspx