C# winform cefsharp 截取网页元素图片
C# winform cefsharp 截取网页元素图片
- 通过元素id找到该元素在网页中的坐标
- 获取winform窗体的坐标位置
- 计算该元素对应的在桌面上坐标
- 根据截图接口传入该元素对应桌面坐标,截取该元素图片
效果图如下:
调用代码如下,主要两个函数:
public string GetPicPath(){try{string script =@"(function(){var img = document.getElementById('verifyImg');var result=false;if(img!=null){oRect = img.getBoundingClientRect();result = oRect.left+','+oRect.top+','+oRect.right+','+oRect.bottom;return result;}return result;})();";Task<JavascriptResponse> jr = browser.EvaluateScriptAsync(script);jr.Wait();//等待脚本执行完if (jr != null){var response = jr.Result;Log.println("d", response.Success + "");if (response.Success && response.Result != null){Log.println("d","ok"+","+ response.Result);string xywh = response.Result.ToString();Log.println("d", "xywh=" + xywh);if (xywh.Contains(",")){string[] s = xywh.Split(',');int x = Convert.ToInt32(s[0]);int y = Convert.ToInt32(s[1]);int w = Convert.ToInt32(s[2])- Convert.ToInt32( s[0]);int h = Convert.ToInt32(s[3])- Convert.ToInt32(s[1]);Log.println("d", "x="+x+",y=" + y+",w="+w+",h="+h);//标题高度int title_h = this.Height - this.ClientRectangle.Height;//对应的窗体左边框距离浏览器控件宽度是18,标题和浏览器控件间隙高度也是18string imgPath = screenCut(this.Location.X+x+18, this.Location.Y+y+ title_h + 18, w, h);Log.println("d","图片路径:"+imgPath);this.pictureBox1.Image = Image.FromFile(imgPath);return imgPath;}}}} catch (Exception) { }return "";}
public string screenCut(int x,int y, int width, int height){try{//屏幕宽//int iWidth = Screen.PrimaryScreen.Bounds.Width;//屏幕高//int iHeight = Screen.PrimaryScreen.Bounds.Height;//按照屏幕宽高创建位图Image img = new Bitmap(width, height);//从一个继承自Image类的对象中创建Graphics对象Graphics gc = Graphics.FromImage(img);//抓屏并拷贝到myimage里gc.CopyFromScreen(new Point(x, y), new Point(0, 0), new Size(width, height));//this.BackgroundImage = img;//保存位图string filePath = @"img/" + Guid.NewGuid().ToString() + ".jpg";img.Save(filePath);Log.println("d", "截图完成!"+ this.Location.X+","+ this.Location.Y+","+ width+","+ height);return filePath;} catch (Exception) { }return "";}
总结:之前尝试过其他的方法,发现截出来图是空白的,这个方法有个缺点,就是要截取的图片不能被挡住,因为这个是调用电脑屏幕截图的
C# winform cefsharp 截取网页元素图片相关推荐
- js实现截取网页上特定位置的图片打印或保存
js实现截取网页上特定位置的图片打印或保存 一.实现思路 具体思路是创建一个宽和高都是100%的canvas,使其能够覆盖整个页面,然后根据所要截取的图片起始位置相对于canvas的位置(因为是1 ...
- 如何截取网页以及切割网页元素进行图像识别
1. 使用 driver.save_screenshot('login.png') 可以保存当前网页的截图到当前文件目录 2.使用 yzm = driver.find_element_by_x ...
- android截取网页图片,安卓版谷歌浏览器很快将获得滚动截图功能 可以用来截取整个网页...
截图功能对用户来说应该是非常常用的功能,然而有时候截取网页时可能需要我们进行多次截图再拼接截图图片. 为解决这种问题现在已经有些软件提供滚动截图功能,滚动截图可帮助用户一次性将整个网页内容截图无需拼接 ...
- Winform嵌入Web网页-CefSharp组件
Winform嵌入Web网页-CefSharp组件 WebBrower组件是基于本地操作系统的IE浏览器的,CSS解析和兼容性不太友好,一般我们不推荐使用.这里我们采用的是CefSharp这个开源组件 ...
- c# 实现网页加载后将页面截取为长图片
背景 最近再做一个需求,需要对网页生成预览图,如下图 但是网页千千万,总不能一个个打开,截图吧:于是想着能不能使用代码来实现网页的截图.其实要实现c#教程这个功能,无非就是要么实现一个仿真浏览器,要么 ...
- html 图片局边框的边距,0032 如何使用css调整网页元素的边距和边框
原标题:0032 如何使用css调整网页元素的边距和边框 上节课,将css文件独立为一个样式文件,达到了将内容和样式进行分离的目的. 这节课,要学习如何调整网页元素的边距和边框. 上节课的课后练习 使 ...
- html局部可复制,截取网页局部区域css样式的方法和系统的制作方法
截取网页局部区域css样式的方法和系统的制作方法 [技术领域] [0001]本发明涉及计算机网络技术领域,特别是涉及一种截取网页局部区域CSS样式的方法和系统. [背景技术] [0002]CSS(Ca ...
- java爬虫下载图片到磁盘_java入门爬虫(爬取网页的图片下载到本地磁盘)
java爬虫入门技术 我们需要用到http协议 从而建立java程序和网页的连接 URL url = new URL("https://www.ivsky.com/tupian/ziranf ...
- QQ浏览器怎么截取整个网页 QQ浏览器完整截取网页的方法
浏览器在我们工作娱乐的时候给我们带来了许多便利,在我们浏览网页时可能有这样的需求,将某个页面的内容截取成图片,而QQ截图功能只能实现局部截图,因此这时候我们可以考虑使用流量器自带的截图工具,这里用QQ ...
- 怎么截取网页全图_FastStone Capture长截图怎么使用?滚动截图教程
FastStone Capture长截图怎么使用?滚动截图教程.FastStone Capture是一款非常受大众们喜爱一款截图软件,具备着自定义截图.滚动窗口截图等多种截图功能,而且操作简便,容易上 ...
最新文章
- L09-10老男孩Linux运维实战培训-Nginx服务生产实战应用指南05(架构解决方案)
- 特斯拉Model 3国内起售价下调至23.59万元
- 网络工程师_要记录下来的一些题_4
- 微软推出MSDN2008中文版有些仓促,中文的MSDN2008Beta2内容都是E文的...
- CreateProcess failed: The system cannot find the file specified.
- 会话技术 —— Cookie 实现原理 || 在idea编辑器中设置代码的模板
- 考前自学系列·计算机组成原理·补码定点加减运算和溢出判断,浮点数的加减运算,原码的乘法
- CentOS Squid 安装配置
- mysql id会用完吗_数据库自增ID用完了会怎样?
- 数据填充规则之PKCS7
- Java内存运行机制
- JAVA编程规范总结
- GridView自带的分页功能的实现
- Hadoop Configuration 源码详解
- 2 str转byte失败_linux服务器,JAVA进行word转pdf
- cad快速选择命令快捷键_CAD图层快捷键命令应用讲解
- VISA/MasterCard/AE/DC/JCB卡号结构
- Linux驱动——ALSA
- blender 制作城市建筑模型
- 每日一佳——Hilbert Space Embeddings of Hidden Markov Models(Le Song,ICML,2010)