获得WebBrowser中的图片数据
/// <summary>
/// 获取WebBrowser指定的图片
/// </summary>
/// <param name="webBrowser">需要获取图片的WebBrowser</param>
/// <param name="imgID">指定的图片的id(优先查找指定id)</param>
/// <param name="imgSrc">指定的图片的src,支持模糊查询</param>
/// <param name="imgAlt">指定的图片的src, 支持模糊查询</param>
/// <returns></returns>
public static Image GetRegCodePic(ref WebBrowser webBrowser, String imgID, String imgSrc, String imgAlt)
{ HTMLDocument doc = (HTMLDocument)webBrowser.Document.DomDocument;
HTMLBody body = (HTMLBody)doc.body;
IHTMLControlRange rang = (IHTMLControlRange)body.createControlRange();
IHTMLControlElement img; // 如果没有图片的ID,通过Src或Alt中的关键字来取
if (imgID.Length == 0)
{
Int32 ImgNum = GetPicIndex(ref webBrowser, ref imgSrc, ref imgAlt); if (ImgNum == -1)
return null; img = (IHTMLControlElement)webBrowser.Document.Images[ImgNum].DomElement;
}
else
img = (IHTMLControlElement)webBrowser.Document.All[imgID].DomElement; rang.add(img);
rang.execCommand("Copy", false, null);
Image regImg = Clipboard.GetImage();
Clipboard.Clear();
return regImg;
} /// <summary>
/// 获取WebBrowser指定图片的索引
/// </summary>
/// <param name="webBrowser">指定的WebBrowser</param>
/// <param name="imgSrc">指定的图片src,支持模糊查询</param>
/// <param name="imgAlt">指定的图片alt,支持模糊查询</param>
/// <returns></returns>
public static Int32 GetPicIndex(ref WebBrowser webBrowser, ref String imgSrc, ref String imgAlt)
{
IHTMLImgElement img; // 获取所有的Image元素
for (Int32 i = 0; i < webBrowser.Document.Images.Count; i++)
{
img = (IHTMLImgElement)webBrowser.Document.Images[i].DomElement; if (imgAlt.Length == 0)
{
if (img.src.IndexOf(imgSrc) >= 0)
return i;
}
else
{
if (imgSrc.Length == 0)
{
// 当imgSrc为空时,只匹配imgAlt
if (img.alt.IndexOf(imgAlt) >= 0)
return i;
}
else
{
// 当imgSrc不为空时,匹配imgAlt和imgSrc任意一个
if (img.alt.IndexOf(imgAlt) >= 0 || img.src.IndexOf(imgSrc) >= 0)
return i;
}
}
}
return -1;
}
获得WebBrowser中的图片数据的更多相关文章
- PHP ~ 通过程序删除图片,同时删除数据库中的图片数据 和 图片文件
删除单张图片 <?php require_once '../../conn.php'; //连接数据库 $ID = $_GET['ID' ...
- 如何在数据表中存取图片 - 回复 "三足乌" 的问题
问题来源: http://www.cnblogs.com/del/archive/2009/05/28/1491186.html#1801853 准备工作:1.在空白窗体上添加: ClientData ...
- 【在网页中获取截图数据】Chrome和Firefox下的实战经验
[转载自我在segmentfault的专栏:https://segmentfault.com/a/1190000004584071] 最近在实现一个功能,需求如下: 前提:当前页面无弹窗 页面任意位置 ...
- 【小梅哥FPGA进阶教程】串口发送图片数据到SRAM在TFT屏上显示
十五.串口发送图片数据到SRAM在TFT屏上显示 之前分享过rom存储图片数据在TFT屏上显示,该方法只能显示小点的图片,如果想显示TFT屏幕大小的图片上述方法rom内存大小不够.小梅哥给了个方案,利 ...
- iOS 中使用Base64编码方式编码图片数据
最近一个项目要求对图片数据简单加密下,就是那种不能直接看到图片内容就行.于是我使用了base64编码对图片数据进行编码,把图片2进制数据变成了base64的字符串,再把这个字符串保存到server的数 ...
- python2/3中 将base64数据写成图片,并将图片数据转为16进制数据的方法、bytes/string的区别
1.python2将base64数据写成图片,并将数据转为16进制字符串的方法 import binascii img = u'R0lGODlhagAeAIcAAAAAAAAARAAAiAAAzABE ...
- matlab中图片数据类型转换uint8与double
matlab中处理图像像素点数据: img1=double(imread('lenna.bmp')); matlab中imshow图片,要先转换成uint8: subplot(1,2,1),imsho ...
- 在html页面中直接嵌入图片数据
一般情况,通常是在html页面中应用图片的链接,如: <img src="http://baidu.com/logo.gif"> 但是,这样的前提是我们需要将图片先 ...
- Java中处理接口返回base64编码的图片数据
在做接口测试的时候,某些接口返回的content是一大段加密文字.这种情况下,有可能是返回的图片加密数据,需要将这些数据转换成图片进行保存查看. 例如: 这里,可以看到Content对应的键值开头有“ ...
随机推荐
- vim编辑文件警告Swap file already exists ,如何删除vim编辑产生的.swp文件?查看隐藏文件命令
vim编辑文件警告Swap file already exists,如何删除vim编辑产生的.swp文件?查看隐藏文件命令 Linux(centos7)下多个用户同时编辑一个文件,或编辑时非正常关闭, ...
- VPS高性能虚拟机KVM详解
1. KVM 介绍 1.0 虚拟化简史 其中,KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是Linux 的一个内核模块,该内核模块使得 Linux ...
- LCA 最近公共祖先 (模板)
#include <iostream> #include <stdio.h> #include <cstring> #include <vector> ...
- SharePoint 解决管理员密码修改后各种问题的来袭
问题描述:本人用的是Win10自带虚拟机Hyper-V.Windows Service 2012R2.SQL2014和SharePoint2016,由于有一段时间没有登录虚拟机,在此登录的时候提示密码 ...
- spark读取hbase形成RDD,存入hive或者spark_sql分析
object SaprkReadHbase { var total:Int = 0 def main(args: Array[String]) { val spark = SparkSession . ...
- Django框架----分页器(paginator)
Django的分页器(paginator) view.py from django.shortcuts import render,HttpResponse # Create your views h ...
- ogg 12.3 中 format release的变化
Non-CDB databases with compatibility set to 12.1, FORMAT RELEASE 12.2 or above is supported. Non-CDB ...
- python 3.7 方向键乱码
原因是缺少安装包libreadline-dev 第一步安装libreadline-dev包:sudo apt-get install libreadline-dev(centos安装:yum -y i ...
- JAVA获取不同操作系统的分隔符等参数
import java.util.Properties; public class SeparatorUtils { /* system properties to get separators */ ...
- 在使用springMVC时,页面报的404异常
HTTP Status – Not Found Type Status Report Message /WEB-INF/test/hello.jsp Description The origin se ...