当前位置:编程学习 > C#/ASP.NET >>

图片裁剪,使用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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,