我正在開發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