c# - 保存 PictureBox 图像时为 "A generic error occurred in GDI+"

标签 c# gdi+

我开发了一个 WinForms 应用程序,它可以在 Windows 8.1 下正常运行,但是当我尝试在 Windows 7(32 位)上运行它时,它会抛出错误:

A generic error occurred in GDI+

错误源于对下面Save的调用:

PictureBox p1 = (PictureBox)tableLayoutPanel1.Controls[i];
p1.Image.Save(
    @path
        + @"\" 
        + DateTime.Now.ToString("dd/MM/yyyy-hh.mm.ss")
        + i
        + ".jpeg", 
    System.Drawing.Imaging.ImageFormat.Jpeg);

对错误原因有什么想法吗?

最佳答案

看来文件名中的正斜杠是问题所在。我用句点替换了它们并能够保存文件。 (请注意,在任何情况下,您都需要对“C:\car Rental\”目录具有适当的权限。)

根据this article ,正斜杠是文件名中不允许使用的保留字符。摘录:

The following reserved characters:

< (less than)
> (greater than)
: (colon)
" (double quote)
/ (forward slash)
\ (backslash)
| (vertical bar or pipe)
? (question mark)
* (asterisk)

关于c# - 保存 PictureBox 图像时为 "A generic error occurred in GDI+",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34878964/

相关文章:

c# - Image.Save(..) 抛出 GDI+ 异常,因为内存流已关闭

c# - 如何使用 Control.DrawToBitmap 将 Form 渲染为没有装饰(标题栏、边框)的 Bitmap?

c# - session 状态 MVC3

c# - sql查询中的最大参数个数

c# - 无法在 Entity Framework 中的 DbCommand 中传递参数

c++ - gdiplus 从字符串构造图像

.net - System.Drawing.Image.Save 抛出 ExternalException : A generic error occurred in GDI

c# - 使用LINQ,如何将集合聚合为指定类型?

c# - 为 iPhone 应用程序抓取 MS SQL Server 数据?

c#非线性渐变画笔?