相关疑难解决方法(0)

如何在保存图像时找到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);
Run Code Online (Sandbox Code Playgroud)

例外是:

发生了System.Runtime.InteropServices.ExternalException

GDI +中发生了一般错误.

at System.Drawing.Image.Save(String filename,ImageCodecInfo encoder,EncoderParameters encoderParams)
at System.Drawing.Image.Save(String filename,ImageFormat format)
at ...

据我所知,图像没什么特别之处.它的大小约为250像素,可以在Windows Image Viewer或Paint.NET中打开:

在此输入图像描述

(由于上面的图片,上传到Stack Overflow后不再产生错误,我把原始图像放在这里)

我发现在调用Save方法时,目标图像文件是用零字节创建的.

我真的对导致错误的原因一无所知.

我的问题:

  • 你能想到任何阻碍.NET保存图像的特殊事物吗?
  • 有没有办法(除了惊慌失措)缩小这些错误?

.net c# system.drawing gdi+ image

29
推荐指数
4
解决办法
8万
查看次数

标签 统计

.net ×1

c# ×1

gdi+ ×1

image ×1

system.drawing ×1