Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   Extraer una imagen tipo captcha de una web (https://www.clubdelphi.com/foros/showthread.php?t=88783)

(MAJ) 30-07-2015 18:15:23

Extraer una imagen tipo captcha de una web
 
despues de ver en varias paginas el problema de querer extraes una imagen tipo captcha(imagen que se modifica cada vez que es cargada), aqui les traigo una pequeña solucion de como hacerlo.

Código Delphi [-]
procedure tform1.capturaImg(const num_img:integer; disp:IDispatch; contenedor:TImage);
var
  doc:ihtmldocument2;
  image: ihtmlimgelement;
  render:ihtmlelementrender;
  coleccion:ihtmlelementcollection;
begin
  doc:= disp as ihtmldocument2;
  coleccion:= doc.images;
  image:= coleccion.item(num_img,0) as ihtmlimgelement;
  contenedor.Height:= image.height;
  contenedor.Width:= image.width;
  render := image as ihtmlelementrender;
  render.DrawToDC(contenedor.Canvas.Handle);
  contenedor.Refresh;
end;

Este procedimiento lo que hace es tomar la imagen de la pagina y enviarla a un contenendor timage, por medio de tres parametros:
Primero: Numero de indice que corresponde a la imagen(primero hay que identificar el indice que corresponde a la imagen ya que carga cada imagen de la pagina y la indexa, desde ahi se selecciona la imagen correspondiente).
Segundo: IDispatcher del navegador (yo utilizo como parametro webbrowser1.document).
Tercero: El contenedor donde se va a almacenar la imagen.

Espero que les sea de utilidad

P/d: Como veran no es la forma mas elegante de implementarlo, ya que se podria buscar por getelementbyid o class, pero en mi caso particular no tiene ningun tipo de identificacion, asi que por eso tengo que indexarla de esta manera. La cuestion es dejar un metodo de como hacerlo y cada uno lo adapta a sus necesidades :D

nlsgarcia 30-07-2015 18:20:28

(MAJ),

Cita:

Empezado por (MAJ)
...Extraer una imagen tipo captcha de una web...

^\||/

Nelson.

FideRosado 28-01-2016 03:55:41

respuesta
 
hola , la verdad es que me quede botao, pon mas codigo pa saber que has echo y como lo implementas

slant98 27-04-2020 20:22:55

¡Gracias por esto!

Neftali [Germán.Estévez] 28-04-2020 09:54:59

Gracias por el aporte.
^\||/^\||/^\||/


La franja horaria es GMT +2. Ahora son las 23:56:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi