图片裁剪,使用CopyFromScreen方法,提示句柄无效,怎么解决呢,谢谢先!!!
protected void CutImage(int intLeft,int intTop,int intWidth,int intHeight){
System.Drawing.Image imgTemp = System.Drawing.Image.FromFile(imgHeadImage.ImageUrl);
Graphics graTemp = Graphics.FromImage(imgTemp);
Rectangle rectArea = new Rectangle(intLeft,intTop,intWidth,intHeight);
graTemp.CopyFromScreen(rectArea.X, rectArea.Y, 0, 0, rectArea.Size);//左10顶10宽90高90
IntPtr dc1 = graTemp.GetHdc();
graTemp.ReleaseHdc(dc1);
string strImageFolder = Server.MapPath("/UpLoadFolder/Images/");
Random objRand = new Random();
string strPicName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + Convert.ToString(objRand.Next(99) * 97 + 100) + ".jpg";
string allpathname = strImageFolder + strPicName;
imgTemp.Save(allpathname);
}
错误信息:
System.ComponentModel.Win32Exception: 句柄无效。
错误行:
graTemp.CopyFromScreen(rectArea.X, rectArea.Y, 0, 0, rectArea.Size);
有高人指点一下,不胜感激!
--------------------编程问答-------------------- up --------------------编程问答-------------------- (1)System.Drawing.Image imgTemp = System.Drawing.Image.FromFile(imgHeadImage.ImageUrl);这种路径可能不行,需要用Server.MapPath转换为服务器路径。
(2)graTemp.CopyFromScreen(rectArea.X, rectArea.Y, 0, 0, rectArea.Size);是从服务器端拷屏,而不是从客户端。 --------------------编程问答-------------------- 再就是如果graTemp的尺寸小于拍屏尺寸,也出错
补充:.NET技术 , ASP.NET