有了这样的加载和存储图像时的年龄工作的代码,我发现我有一个打破这个代码的单个图像:如何在保存图像时找到Generic GDI +错误的原因?
const string i1Path = @"c:\my\i1.jpg";
const string i2Path = @"c:\my\i2.jpg";
var i = Image.FromFile(i1Path);
i.Save(i2Path, ImageFormat.Jpeg);
唯一的例外是:
System.Runtime .InteropServices.External发生的异常
GDI +中发生了一般性错误。
在System.Drawing.Image.Save(字符串文件名,ImageCodecInfo编码器,EncoderParameters encoderParams)
在System.Drawing.Image.Save(字符串文件名,格式的imageformat)
在...
就我所见,图像没有特别之处。它大小约为250像素,可以在例如Windows图像查看器或Paint.NET:
(由于上面的图片,上传到堆栈溢出不会产生错误了之后,我已经把the original image here)
我发现是在调用Save
method时,目标图像文件正在创建零字节。
我对导致错误的原因确实无能为力。
我的问题:
- 你能想到的会从保存图像阻碍.NET任何特别的东西?
- 有没有什么办法(除了恐慌)来缩小这类错误?
MSDN说从流加载的位图需要流保持存在,只要位图存在。 – 2015-11-11 00:14:00
未解决您的问题:但是,如果路径不存在,则会发生同样的异常(我花了一段时间才弄清楚我有一个错字)。可能帮助别人。 – 2017-05-18 08:27:25