【发布时间】:2016-04-19 05:53:31
【问题描述】:
我正在尝试使用此代码将网络表单另存为图像:
using System.Drawing.Printing;
using System.Drawing;
using System.Drawing.Imaging;
protected void btntopdf_Click(object sender, EventArgs e)
{
Capture("D://ScreenShot.jpg");//path to Save Captured files
}
public static void Capture(string CapturedFilePath)
{
Bitmap bitmap = new Bitmap
(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width, System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height);
Graphics graphics = Graphics.FromImage(bitmap as System.Drawing.Image);
graphics.CopyFromScreen(25, 25, 25, 25, bitmap.Size);
bitmap.Save(CapturedFilePath, ImageFormat.Jpeg);//ERROR
bitmap.Dispose();
graphics.Dispose();
}
我收到A generic error occurred in GDI+.
堆栈跟踪
[ExternalException (0x80004005): A generic error occurred in GDI+.]
System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams) +474386
System.Drawing.Image.Save(String filename, ImageFormat format) +69
UNO.EmployeePerformanceCreate.Capture(String CapturedFilePath) in D:\Project\UNO\UNO\EmployeePerformanceCreate.aspx.cs:2258
UNO.EmployeePerformanceCreate.btntopdf_Click(Object sender, EventArgs e) in D:\Project\UNO\UNO\EmployeePerformanceCreate.aspx.cs:2208
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9628114
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724
【问题讨论】:
-
您的 ASP.NET 工作进程是否有权访问 `D:`?
-
另外,您知道这只有在您的 Web 服务器和客户端浏览器在同一台机器上时才有效,对吧?
-
@Alexander 真的吗?你确定吗?