COMO CAPTURAR UM RECORTE DA PAGINA WEB

ACDONA 09/12/2011 12:13:56
#390973
Na página da Web, aparece um captcha que eu quero recortar e colocar no meu form em um picturebox.

Eu acho que preciso primeiro fazer um retangulo:
Dim MarcarCaptcha as New Rectangle(New Point(800,60), new size (200,50))

Mas qual comando que eu uso para recortar oque eu selecionei?




KERPLUNK 09/12/2011 12:21:56
#390975
Não é por aí não amigo. O que vc deve fazer é analizar o código HTML, ver onde está a figura, baixar e aí sim colocar em uma picturebox. Fazer um [Ô]recorte[Ô] pode dar muito errado, pois pode recortar a parte errada...
ACDONA 09/12/2011 14:49:12
#390987
Assim?

Dim captchanfe As HtmlElement = WebBrowser1.Document.GetElementById([Ô]ContentPlaceHolder1_lblCaptcha[Ô])

Sabendo que aquele campo, [Ô]pode ser a imagem[Ô], como converto para colocar no picturebox?

Picturebox1.Image = captchanfe -> dá erro

Ah a página que estou querendo capturar o captcha é esa:

https://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=

KERPLUNK 09/12/2011 15:01:22
#390988
O endereço do gerador captcha é: https://www.nfe.fazenda.gov.br/scripts/srf/intercepta/captcha.aspx?opt=image
O problema é que vc não vai conseguir fazer o que vc quer porque cada vez que acessar o captcha, vai ser diferente...
ACDONA 09/12/2011 22:18:29
#391031
resolvido com dicas do ALTAIR148 e mais uns códigos que achei pela net.

coloquei asism no evento Load do Form
com isso abri a página que eu queria

WebBrowser1.Visible = False
WebBrowser1.Navigate([Ô]http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=[Ô])


depois no evento do DocumentCompleted do WebBrowse, coloquei assim:

WebBrowser1.Visible = True
WebBrowser1.Document.Window.ScrollTo(70, 335)

Assim, mostra para mim exatamente o que eu preciso, [Ô]o captcha[Ô]. Nem precisei recortar ele, pois só mostrando ele pro usuário, já vai bastar

Mas se precisar recortar e colar em outro form é só fazer assim:

Private Sub btnCapture_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCapture.Click
[ô] Obter a imagem.
Dim bm As Bitmap = GetFormImage(True)

[ô] Exibir a imagem em um novo formulário.
Dim frm As New frmShowCapture
frm.picCapturedImage.Image = bm
Dim wid As Integer = bm.Width + 2 * frm.picCapturedImage.Left
Dim hgt As Integer = bm.Height + 2 * frm.picCapturedImage.Top
frm.ClientSize = New Size(wid,hgt)
frm.ShowDialog()
End Sub


Private Function GetFormImage(ByVal include_borders As Boolean) As Bitmap
Dim wid As Integer = Me.Width
Dim hgt As Integer = Me.Height
Dim bm As New Bitmap(wid, hgt)
WebBrowser1.DrawToBitmap(bm, New Rectangle(0, 0, wid, hgt))
Return bm
End Function
Tópico encerrado , respostas não são mais permitidas