C#怎么截取指定范围内自身窗体背景图片?
有个最大化的空窗体,上面有个铺满的背景图片,怎么把指定范围内的背景保存为图片?窗体是无边框的,需要截取的区域就是图中的蓝色框内的区域,这个范围可以调整...
有个最大化的空窗体,上面有个铺满的背景图片,怎么把指定范围内的背景保存为图片?
窗体是无边框的,需要截取的区域就是图中的蓝色框内的区域,这个范围可以调整 展开
窗体是无边框的,需要截取的区域就是图中的蓝色框内的区域,这个范围可以调整 展开
展开全部
在窗体类添加三个字段
private Point startP;
private bool mouseDown;
private Bitmap image;
在窗体初始化函数Load中添加:
this.mouseDown=false;
this.image=null;
为窗体添加MouseDown事件,在事件函数中添加:
if(e.Button==MouseButtons.Left)
{
this.startP=new Point(e.X,e.Y);
this.mouseDown=true;
}
为窗体添加MouseUp事件,在事件函数中添加:
if(this.mouseDown)
{
this.mouseDown=false;
Size size=new Size(e.X-startP.X,e.Y-startP.Y);
this.image=new Bitmap(size.Width,size.Height);
Graphics g=Graphics.FromImage(this.image);
g.CopyFromScreen(this.Location.X+startP.X,this.Location.Y+startP.Y,0,0,size);
g.Save();
g.Dispose();
/*此时this.image就是你鼠标截图的部分图像,可以用于显示在其他窗体,也可以保存到文件。*/
}
你试试,我手打的,没调试!
private Point startP;
private bool mouseDown;
private Bitmap image;
在窗体初始化函数Load中添加:
this.mouseDown=false;
this.image=null;
为窗体添加MouseDown事件,在事件函数中添加:
if(e.Button==MouseButtons.Left)
{
this.startP=new Point(e.X,e.Y);
this.mouseDown=true;
}
为窗体添加MouseUp事件,在事件函数中添加:
if(this.mouseDown)
{
this.mouseDown=false;
Size size=new Size(e.X-startP.X,e.Y-startP.Y);
this.image=new Bitmap(size.Width,size.Height);
Graphics g=Graphics.FromImage(this.image);
g.CopyFromScreen(this.Location.X+startP.X,this.Location.Y+startP.Y,0,0,size);
g.Save();
g.Dispose();
/*此时this.image就是你鼠标截图的部分图像,可以用于显示在其他窗体,也可以保存到文件。*/
}
你试试,我手打的,没调试!
追问
原来是这个思路啊,我之前考虑的是使用窗体的DrawToBitmap,结果得到的bmp是空的,保存之后本地没有发现文件
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询