【发布时间】:2015-09-30 21:45:19
【问题描述】:
我正在开发 Outlook 2010 加载项,并且正在从序列化的 XML 文件加载图像。图像加载良好,并且能够将其分配给 Winform 上的图片框对象没有问题。对象保存在
[XmlIgnore]
public Bitmap Image
{
get { return this.templateImage; }
set { this.templateImage = value; }
}
当我尝试将物理文件保存到硬盘上时,我正在这样做:
string filePath = Path.Combine(dirPath, item.Id + ".jpg");
try
{
item.Image.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch (Exception e)
{
Debug.WriteLine("DEBUG::LoadImages()::Error attempting to create image::" + e.Message);
}
并且在 GDI+ 中出现一般性错误。我检查了文件夹的写权限,它确实有写权限。我不确定这里有什么问题。我还将 ImageFormat 更改为 bmp 和 png 等,以查看是否是转换问题……但不是。有人会建议尝试一下吗?
【问题讨论】:
-
这个错误有很多可能的原因..它非常令人沮丧。一些事情要尝试: 1)写入不同的文件夹。 2) 检查文件的尺寸。如果它太大(在 4000x4000 范围内)也会抛出这个错误。 3) 确保文件没有被其他任何东西(包括你的代码)使用。
-
@Simon Whitehead 感谢您的建议。我尝试写入父目录,也写入 C:\temp 但这没有用。该文件的尺寸为 64x64 像素(小)。 #3 是唯一一个我还没有尝试过的。我想我可以将图像复制到一个新对象并尝试编写那个对象。将立即报告。
-
@Simon Whitehead 成功了!事实上,我的代码正在使用 item 进行迭代,所以 GDI+ 似乎无法在完成后处理它。