C# GDI发生一般性错误A generic error occurred in GDI)C# GDI发生一般性错误A generic error occurred in GDI)解决思路因为 .net GDI 是对底层 的封装。所以可以尝试用 Marshal.GetLastWin32Error();函数获得底层错误代码。try{image.Save(filename,System.Drawing.Imaging.ImageFormat.Png);}catch(Exceptionexp){varcodeMarshal.GetLastWin32Error();thrownewException(exp.Message:code.ToString(),exp);}查看错误代码含义链接: https://msdn.microsoft.com/en-us/library/ms681381(VS.85).aspxERROR_PATH_NOT_FOUND3(0x3)The system cannot find the path specified.原因save的目录不存在。 解决手动或通过程序建save的目录。 ERROR_ACCESS_DENIED5(0x5)Accessisdenied.原因 save的目录没有权限 解决 查看目录的权限 ERROR_SHARING_VIOLATION32(0x20)The process cannot access the file because itisbeingusedbyanother process.原因 从一个文件构造的Bitmap 对象或一个 Image 对象,在该对象的生存期内该文件处于锁定状态。 因此,在没有释放这个Image或Bitmap对象前无法更改图像并将其保存回原文件。 解决 构造一个新的Image对象然后把原来的Image对象中的图象通过Graphics的DrawImage()方法拷贝到新Image对象中最后通过Dispose()方法释放原来的Image对象ImageimagenewBitmap(openFileDialog1.FileName);//新建第二个Image类型的变量newImage这里是根据程序需要设置自己设置。ImagenewImagenewBitmap(800,600);//将第一个bmp拷贝到bmp2中GraphicsdrawGraphics.FromImage(newImage);draw.DrawImage(image,0,0);//释放第一个Image对象image.Dispose();其他问题a. Image 对应的Stream被Dispose了。b. 保存成png时报错。相关地址: https://www.shuzhiduo.com/A/ke5jEwkXJr/相关地址: https://www.cnblogs.com/guangfengli/p/5920104.html