读书人

[原创分享]网页截图解决思路

发布时间: 2012-02-12 17:16:33 作者: rapoo

[原创分享]网页截图
功能与说明:
自动对指定的网页进行整页截图
为方便使用,已做成单独的VB文件.
自定义图片保存地址,自定义图片格式
可获取截图进度

VB.NET code
'-------WebCapture模块代码-------Module WebCaptureModel    Public Class WebCapture        Public MaxLength, ValueLength As Integer        Private WithEvents WB As New WebBrowser        Private BP As Bitmap        Public XX, YY As Integer        Private ISOK As Integer = 0        Private SPTH As String        Private BPFMT As Drawing.Imaging.ImageFormat        Private NURL As String = ""        Public Event CaptureCompleted(ByVal e As String)        Private OKOK As Boolean = True        Private Sub wb_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WB.DocumentCompleted            On Error Resume Next            If OKOK = False Then                If BP IsNot Nothing Then BP.Dispose()                If XX = 0 Or YY = 0 Then                    XX = WB.Document.Body.GetAttribute("scrollwidth")                End If                YY = WB.Document.Body.GetAttribute("scrollHeight")                WB.Size = New Point(XX, YY)                BP = New Bitmap(XX, YY)                WB.DrawToBitmap(BP, New Rectangle(0, 0, XX, YY))                If My.Computer.FileSystem.FileExists(SPTH) = True Then                    Kill(SPTH)                End If                BP.Save(SPTH, BPFMT)                RaiseEvent CaptureCompleted(NURL)                OKOK = True            End If        End Sub        Public Sub StartCapture(ByVal URL As String, ByVal SavePath As String, ByVal BitmapFormat As System.Drawing.Imaging.ImageFormat)            Try                WB.ScrollBarsEnabled = False                OKOK = False                SPTH = SavePath                NURL = URL                BPFMT = BitmapFormat                WB.Navigate(URL)            Catch ex As Exception                MsgBox(ex.Message)            End Try        End Sub        Private Sub WB_ProgressChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) Handles WB.ProgressChanged            MaxLength = e.MaximumProgress            ValueLength = e.CurrentProgress        End Sub    End ClassEnd Module



VB.NET code
'---------功能调用代码--------Public Class Form2    Private WithEvents CP As New WebCapture    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        Label1.Text = "正在捕获网页..."        '提供用户正在操作        Timer1.Enabled = True        '控制进度条        CP.StartCapture(TextBox1.Text, "c:\windows\temp\12312322222222.bmp", Imaging.ImageFormat.Bmp)        '开始捕获并保存为BMP格式图片    End Sub    Private Sub CP_CaptureCompleted(ByVal e As String) Handles CP.CaptureCompleted        Label1.Text = "网页捕获完成"        Shell("mspaint.exe c:\windows\temp\12312322222222.bmp", AppWinStyle.NormalFocus, False)        '打开保存的图片        Timer1.Enabled = False        '结束进度条控制    End Sub    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick        On Error Resume Next        PB.Maximum = CP.MaxLength        PB.Value = CP.ValueLength    End SubEnd Class


功能调用演示图


最终截图演示(已缩小比例处理)


[解决办法]
先研究下
[解决办法]
顶!!
[解决办法]
学习了
------解决方案--------------------


UP!o(∩_∩)o...
[解决办法]
传说中的截图软件的功能.路过
[解决办法]
原来是这样啊哈哈
[解决办法]
收藏.
[解决办法]
收藏!!
[解决办法]
学习一下……
[解决办法]
e5wtrete4trret4
[解决办法]
不错
[解决办法]
实在佩服啊
[解决办法]
看不懂~~~
[解决办法]

[解决办法]
高~!!!!!!
[解决办法]
学习 顶
[解决办法]
好东东

[解决办法]
经典
[解决办法]
S C
[解决办法]
先研究一下 还是不泰明白

读书人网 >VB Dotnet

热点推荐