Image  originalImage ;           DirectoryInfo di = new DirectoryInfo(@"C:\BagWeb\Image\");
            FileInfo[] ff=di.GetFiles();           
            foreach(FileInfo f in ff)
            {
                originalImage  = null;
originalImage  = new Image();
                  originalImage = Image.FromFile(@"C:\BagWeb\Image\"+f.Name.Trim());
                  //进行缩略图操作,当然凡是new的对象我都Dispose了喔
                  //originalImage.Dispose();
             }试试看,不一定会有效果

解决方案 »

  1.   

    @@@cnming(cnming
    Image是不能实例化的喔!!!!new Image是不正确的
      

  2.   

    Image  originalImage = Image.FromFile(@"C:\BagWeb\Image\"+f.Name.Trim());
                      //进行缩略图操作,当然凡是new的对象我都Dispose了喔
                      originalImage.Dispose();改为using(Image  originalImage = Image.FromFile(@"C:\BagWeb\Image\"+f.Name.Trim()))
    {
                      //进行缩略图操作,当然凡是new的对象我都Dispose了喔
    }试一下~
      

  3.   

    @@@@@@@@phommy(石头,竹子,诗
    还是显示内存不足的错误,这个错误很少的
      

  4.   

    有关调用实时(JIT)调试而不是此对话框的详细信息,
    请参见此消息的结尾。************** 异常文本 **************
    System.OutOfMemoryException: 内存不足。
       在 System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement)
       在 System.Drawing.Image.FromFile(String filename)
       在 MyinfoAPP.FilesOperationA.MakeThumbnail(String originalImagePath, String thumbnailPath, Int32 width, Int32 height) 位置 D:\MyMobile\AppFiles V2.0\MyinfoAPP\FilesOperate\FilesOperationA.cs:行号 109
       在 MyinfoAPP.FilesOperation.button1_Click(Object sender, EventArgs e) 位置 D:\MyMobile\AppFiles V2.0\MyinfoAPP\FilesOperate\FilesOperation.cs:行号 46
       在 System.Windows.Forms.Control.OnClick(EventArgs e)
       在 System.Windows.Forms.Button.OnClick(EventArgs e)
       在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       在 System.Windows.Forms.Control.WndProc(Message& m)
       在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
       在 System.Windows.Forms.Button.WndProc(Message& m)
       在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    ************** 已加载的程序集 **************
    mscorlib
        程序集版本: 2.0.0.0
        Win32 版本: 2.0.50727.42 (RTM.050727-4200)
        基本代码: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    MyinfoAPP
        程序集版本: 1.0.2676.20008
        Win32 版本: 1.0.2676.20008
        基本代码: file:///D:/MyMobile/AppFiles%20V2.0/MyinfoAPP/bin/Debug/MyinfoAPP.exe
    ----------------------------------------
    System.Windows.Forms
        程序集版本: 2.0.0.0
        Win32 版本: 2.0.50727.42 (RTM.050727-4200)
        基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System
        程序集版本: 2.0.0.0
        Win32 版本: 2.0.50727.42 (RTM.050727-4200)
        基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Drawing
        程序集版本: 2.0.0.0
        Win32 版本: 2.0.50727.42 (RTM.050727-4200)
        基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    System.Configuration
        程序集版本: 2.0.0.0
        Win32 版本: 2.0.50727.42 (RTM.050727-4200)
        基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    System.Xml
        程序集版本: 2.0.0.0
        Win32 版本: 2.0.50727.42 (RTM.050727-4200)
        基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    System.Windows.Forms.resources
        程序集版本: 2.0.0.0
        Win32 版本: 2.0.50727.42 (RTM.050727-4200)
        基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_zh-CHS_b77a5c561934e089/System.Windows.Forms.resources.dll
    ----------------------------------------
    System.Drawing.resources
        程序集版本: 2.0.0.0
        Win32 版本: 2.0.50727.42 (RTM.050727-4200)
        基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing.resources/2.0.0.0_zh-CHS_b03f5f7f11d50a3a/System.Drawing.resources.dll
    ----------------------------------------
    mscorlib.resources
        程序集版本: 2.0.0.0
        Win32 版本: 2.0.50727.42 (RTM.050727-4200)
        基本代码: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------************** JIT 调试 **************
    要启用实时(JIT)调试,
    该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置
    jitDebugging 值。
    编译应用程序时还必须启用
    调试。例如: <configuration>
        <system.windows.forms jitDebugging="true" />
    </configuration>启用 JIT 调试后,任何无法处理的异常
    都将被发送到在此计算机上注册的 JIT 调试器,
    而不是由此对话框处理。
      

  5.   

    这个异常并不一定是内存真的不足的原因。文件格式不对或GDI+无法处理这个文件也会引发这个异常!
    如:Image img = Image.FromFile(@"e:\eee.xls");就会引发这个异常!
      

  6.   

    我也遇到这样的问题,只是我使用的是acrobat进行PDF的转换。而我的解决方案是做完一定数量的转换后就暂停程序一小会,让.net有时间对内存中的垃圾进行回收,然后再进行下一批次的处理。由于我的方案是没有找到真正的解决办法时的临时办法,所以希望能从此贴能找到更好的解决方案
      

  7.   


    @wzd24(牧野)(衣带渐宽终不悔,为伊消得人憔悴) 
    if(originalImage.RawFormat==System.Drawing.Imaging.ImageFormat.Jpeg)
    我加判断了,还是不行
      

  8.   

    你要判断这个文件是不是图片类型,而不是判断originalImage,因为异常是在originalImage装载文件的时候发生的异常。这个时候文件还没有被装载进来的。
      

  9.   

    @wzd24(牧野)(衣带渐宽终不悔,为伊消得人憔悴
    能不能具体说一下如何做,或给我一段代码,好吗
      

  10.   

    DirectoryInfo di = new DirectoryInfo(@"C:\BagWeb\Image\");
                FileInfo[] ff=di.GetFiles();           
                foreach(FileInfo f in ff)
                {
                    if(f.Extension.ToLower()==".jpg")//这里加上判断。这只是一个例子,其它的扩展名你自己添加。
                    {
                      Image  originalImage = Image.FromFile(@"C:\BagWeb\Image\"+f.Name.Trim());
                      //进行缩略图操作,当然凡是new的对象我都Dispose了喔
                      originalImage.Dispose();
                    }             }
      

  11.   

    很早以前就看到过了好象
    DirectoryInfo di = new DirectoryInfo(@"C:\BagWeb\Image\");
                FileInfo[] ff=di.GetFiles();
                foreach(FileInfo f in ff)
                {
                    
                      Image  originalImage = Image.FromFile(@"C:\BagWeb\Image\"+f.Name.Trim());
                      //进行缩略图操作,当然凡是new的对象我都Dispose了喔
                      originalImage.Dispose();             }怀疑是中间被注释代码的问题
      

  12.   

    DirectoryInfo di = new DirectoryInfo(@"C:\BagWeb\Image\");
                FileInfo[] ff=di.GetFiles(); 
     Image  originalImage=null;          
                foreach(FileInfo f in ff)
                {
                    
                      originalImage = Image.FromFile(@"C:\BagWeb\Image\"+f.Name.Trim());
                      //进行缩略图操作,当然凡是new的对象我都Dispose了喔
                      originalImage.Dispose();
                 }
    ---