C# 内存不足-处理映像

C# 内存不足-处理映像,c#,bitmap,out-of-memory,emgucv,dispose,C#,Bitmap,Out Of Memory,Emgucv,Dispose,我总是遇到内存不足的问题。我真的不知道有多少图像需要调用dispose方法。我是否忘记了代码中的dispose一些images。每个图像的大小为13-16Mb。有人能帮我吗 imgBox.Image.RotateFlip(RotateFlipType.Rotate180FlipY); imgBox.Refresh(); using (Bitmap bm1 = new Bitmap(imgBox.Image)) //Out of memory { using (Image<Gray,

我总是遇到
内存不足的问题。我真的不知道有多少
图像
需要调用
dispose
方法。我是否忘记了代码中的
dispose
一些
images
。每个图像的大小为13-16Mb。有人能帮我吗

imgBox.Image.RotateFlip(RotateFlipType.Rotate180FlipY);
imgBox.Refresh();
using (Bitmap bm1 = new Bitmap(imgBox.Image)) //Out of memory
{
    using (Image<Gray, byte> EmguImage1 = new Image<Gray, byte>(bm1))
    {
        Global.xrayPic.Dispose();
        Global.xrayPic = EmguImage1.Clone();
        Global.rootPic.Dispose();
        Global.rootPic = EmguImage1.Clone();
    }
}
imgBox.Image.RotateFlip(RotateFlipType.Rotate180FlipY);
imgBox.Refresh();
使用(位图bm1=新位图(imgBox.Image))//内存不足
{
使用(图像EmguImage1=新图像(bm1))
{
Global.xrayPic.Dispose();
Global.xrayPic=EmguImage1.Clone();
Global.rootPic.Dispose();
Global.rootPic=EmguImage1.Clone();
}
}

图像有多大?您是为x64编译的吗?@MineR这些图像来自13-16Mb,我是为任何CPU编译的当您指定这样的图像时,它需要一个13-16Mb的连续内存块-如果13-16是压缩格式的,可能会更多。在x86上,可以很快用完该大小的连续内存块。在项目设置中将其更改为x64(或关闭“首选32位”)。图像有多大?您是为x64编译的吗?@MineR这些图像来自13-16Mb,我是为任何CPU编译的当您指定这样的图像时,它需要一个13-16Mb的连续内存块-如果13-16是压缩格式的,可能会更多。在x86上,可以很快用完该大小的连续内存块。在项目设置中将其更改为x64(或关闭“首选32位”)。