我已经编写了一些代码,可以用List创建一个avi文件。
// instantiate AVI writer, use WMV3 codec
internal static AVIWriter writer = new AVIWriter( "wmv3" );
private static List<Bitmap> imgList = new List<Bitmap>();
internal static void SaveFile()
{
var list = imgList;
imgList = default(List<Bitmap>);
// create new AVI file and open it
writer.Open(@"d:\test.avi", 640, 480);
foreach (Bitmap b in list)
{
writer.AddFrame(b);
}
writer.Close();
}
不幸的是,我在“foreach(列表中的位图b)”中得到了一个null引用异常 但是当我调试并在writer.Close();上放置一个断点时,只有在我实际传递该断点后才会触发此错误。
所以我很困惑,有谁知道这里发生了什么?
答案 0 :(得分:0)
不确定为什么您的程序会在两个不同的点遇到相同的异常。我最好的猜测是它与本地互操作无法与托管代码同步。
您是否尝试过引用AForge源代码而不是二进制代码?这将让您精确定位错误发生的确切位置。
现在我建议您查看任何空值的位图列表或更新到最新的AForge(也许这是一个框架错误)。我还建议你尝试几种不同的编解码器(不要问为什么)。