当前位置:编程学习 > C#/ASP.NET >>

[求助]利用AVIwriter将Bitmap写入AVI时,无法释放内存


private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                Bitmap a;
                if (CheckCursor)
                {
                    a = CaptureDesktop();
                }
                else
                {
                    a = CaptureNoCursor();
                }                 
                if (enter)
                {
                    SWidth = a.Width;
                    SHeight = a.Height;
                    string str = "C:\\Vedio.avi";
                    FileInfo fi = new FileInfo(str);
                    if (fi.Exists)
                    {
                        fi.Delete();
                    }                    
                    aviWriter = new AVIWriter();
                    //avi中所有图像皆不能小于width及height
                    avi_frame = aviWriter.Create(str, 1, SWidth, SHeight);
                    enter = false;
                 }
                a.RotateFlip(RotateFlipType.Rotate180FlipX);

                aviWriter.LoadFrame(a);
                aviWriter.AddFrame();
                a.Dispose(); 
                }
            catch
            {}
        }

上述内容根据后面URL内容改编:http://wangwdding.blog.163.com/blog/static/134191386201032053659186/
在“C#将图像文件压缩为AVI文件播放”有相关源码

疑问:上述过程可以将bitmap正常写入AVI文件,但内存不断增加,注释掉“aviWriter.LoadFrame(a);”和“aviWriter.AddFrame();”后内存正常工作
应该是写AVI的过程中,载入帧数据后没有释放,C#封装的AVIFILE不知道怎么释放这部分内存,请高手帮忙
--------------------编程问答-------------------- 增加的内存不是a的而是AVI的
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,