我正在开发Outlook 2010加载项,并正在从序列化XML文件加载图像。图像加载正常,并且能够将它分配给Winform上的pictureBox对象没问题。对象保存在尝试使用Image.Save时出现“GDI +中发生的通用错误”
[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)确保文件没有被其他任何东西使用(包括你的代码)。 – 2013-02-14 02:04:19
@Simon怀特黑德感谢您的建议。我试图写入父目录,也到C:\ temp但没有奏效。该文件的尺寸是64x64像素(小)。 #3是我唯一没有尝试过的。我想我可以复制图像到一个新的对象,并尝试写一个。会马上报告。 – Magnum 2013-02-14 02:06:46
@Simon Whitehead工作!事实上,我的代码使用item迭代,所以看起来GDI +在完成后无法处理它。 – Magnum 2013-02-14 02:10:54