0

我写了一些代码,应该从列表中创建一个 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)”处得到了一个空引用异常但是当我在 writer.Close(); 处调试并放置一个断点时,这个错误只会在我实际通过该断点后触发。

所以我很困惑,有人知道这里发生了什么吗?

4

1 回答 1

0

不完全确定为什么您的程序会在 2 个不同点遇到相同的异常。我最好的猜测是它与本机互操作不与托管代码同步有关。

您是否尝试过引用 AForge 源代码而不是二进制文件?这将让您查明错误发生的确切位置。

现在我建议你检查你的位图列表是否有任何空值或更新到最新的 AForge(可能是框架错误)。我还建议您尝试几种不同的编解码器(不要问为什么)。

于 2013-04-21T13:01:37.893 回答