网页照相机顾名思义,就是输入一个网址,然后这个"照相机"把网址对应的页面内容变成一个图片输出。大家可以测试下我的一个DEMO网址,然后后续我再描述实现的原理。
1、DEMO网址:http://58.22.105.164:7002/jdha-client/capture/index.jsp ,由于是DEMO,还有挺多小BUG,不要拍砖哦:
2、实现基本流程:首先前台WEB将需要拍照的URL传递给后台的拍照服务端,该拍照服务端使用VB编写,它首先使用webbrowser对象打开URL,同时在界面上再放一个picture对象,调用webbrowser的一个方法,将网页的内容变成图片放到pictrue上;最后,就是将picture的内容另存到硬盘,同时将图片内容转换成jpg图片,返回前台web界面。
3、主要代码如下:
Dim tDoc As MSHTML.HTMLDocument
Dim tIV As IViewObject
Dim tRc As RECT
Dim tOw&, tOh&, tSw&, tSh&
tOw = WebBrowser1.Width
tOh = WebBrowser1.Height
Set tDoc = WebBrowser1.Document
Set tIV = tDoc
tDoc.body.Scroll = "no"
tSw = tDoc.body.scrollWidth + 4
tSh = tDoc.body.scrollHeight + 4
Dim tHdl&
tHdl = GetWebHwnd()
MoveWindow tHdl, 0, 0, tSw, tSh, 0
tRc.Right = tSw
tRc.bottom = tSh
Picture1.Cls
Picture1.Move Picture1.Left, Picture1.Top, tSw, tSh
'将网页内容画到picture上
tIV.Draw DVASPECT_CONTENT, 1, ByVal 0, ByVal 0, _
0&, Picture1.hdc, tRc, tRc, ByVal 0, ByVal 0
tDoc.body.Scroll = "yes"
MoveWindow tHdl, 0, 0, tOw, tOh, 1
'将picture对象另存为bmp图片
SavePicture Picture1.image, "C:/ProgramData/capture/web.bmp"
'将bmp图片转换成jpg图片,供页面展现
frmPicConvert.SavePic "C:/ProgramData/capture//web.bmp", "C:/ProgramData/capture//web.jpg", "jpg", 50
Picture1.Cls
4、感兴趣的童鞋们可以联系我。