我有2个样本代码,我尝试做同样的事情,将属性项更新回图像并将其保存在不同的文件下。从流打开的图像不同于从文件打开的图像
代码1
Image image;
using (FileStream stream = new FileStream(this.fileName, FileMode.Open)) {
image = Image.FromStream(stream);
foreach (var property in this.propItems) {
image.SetPropertyItem(property);
}
}
image.Save(@"D:\Temp\1.jpg");
image.Dispose();
代码2
using (Image image = new Bitmap(this.fileName)) {
foreach (var property in this.propItems) {
image.SetPropertyItem(property);
}
image.Save(@"D:\Temp\1.jpg");
}
唯一的区别是,我怎么打开的文件。如果我运行的第一块代码我得到异常消息
System.Runtime.InteropServices.ExternalException了未处理
的HResult = -2147467259消息=在GDI +发生一般性错误。
源= System.Drawing中错误码= -2147467259
我的第二张的代码只是运行正常,我可以得到正确的输出。这里有什么不同?
在您已经离开使用范围的第一个示例中,流已关闭。 – jac