Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-12-2010
gorgori gorgori is offline
Registrado
 
Registrado: jul 2010
Posts: 8
Poder: 0
gorgori Va por buen camino
Lightbulb Comparar imagen en pantalla con otra imagen

Hola comunidad. Tengo en mente hacer un programa que detecte y compare imágenes de la pantalla con alguna otra que tenga en un formulario oculto.

La idea sería que cada X minutos verifique si en una zona de la pantalla se visualiza la imagen que tengo cargada, lo que llamaría a que se ejecute alguna linea de código.

Por ejemplo: Si el caso fuera que el programa tuviera que iniciar automáticamente sesión en el Messenger (no es el caso) cada vez que se ve que está desconectado y, por lo tanto, el botón que dice "Iniciar Sesión",

entonces el programa hecho en Delphi debería detectar el rectángulo donde se encuentra dicho botón y darse cuenta que es igual a una imagen del mismo guardada en un TImage (para compararla).




Se agradece la lectura y la ayuda! Hasta luego
Responder Con Cita
  #2  
Antiguo 07-12-2010
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Creo que no te va a funcionar. Es decir, sí se pueden comparar imágenes, pero si lo que quieres hacer es conectarte automáticamente al Messenger de Microsoft no es esta la mejor forma. Lo mejor es que busques si es posible entablar una conversación con el cliente (MSN Live), o incluso podría interesarte usar la biblioteca de conexión de Pidgin.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 07-12-2010
gorgori gorgori is offline
Registrado
 
Registrado: jul 2010
Posts: 8
Poder: 0
gorgori Va por buen camino
Lo dije como ejemplo lo del MSN, no es lo que quiero hacer.

Quería saber si es posible hacer algo asi como una matriz de pixeles de un rectangulo "imaginario" en pantalla. Asi, compraria los pixeles con otra imagen y podria calcular si es igual o no.

Gracias por la respuesta
Responder Con Cita
  #4  
Antiguo 12-12-2010
gorgori gorgori is offline
Registrado
 
Registrado: jul 2010
Posts: 8
Poder: 0
gorgori Va por buen camino
Post

Ahí lo hice, es una cosa de niños al final...

Código:
procedure TForm1.Button1Click(Sender: TObject);
var
  e,I: Integer;
begin
igual := 0;
distinto := 0;
for I := 0 to Image1.Width-1 do
begin
  for E := 0 to Image1.Height - 1 do
  begin
  if Image1.Picture.Bitmap.Canvas.Pixels[e,i] = Image2.Picture.Bitmap.Canvas.Pixels[e,i] then
  igual := igual +1
  else
  distinto := distinto+1;
  end;
end;
labelededit1.Text := IntToStr(igual);
labelededit2.Text := IntToStr(distinto);
end;
De ahí sale cuantos son iguales y cuantos no. Gracias!
Responder Con Cita
  #5  
Antiguo 24-12-2010
manuc manuc is offline
Miembro
 
Registrado: abr 2010
Posts: 165
Poder: 15
manuc Va por buen camino
Hola,

También le puedes calcular el hash a las imágenes originales y a las imágenes con las que quieres compararlas. Si son iguales, es la misma imagen.

Un saludo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Contener algúna imagen desde otra PC mrnovice Gráficos 2 28-08-2008 00:09:08
Mover una imagen encima de otra maravert Gráficos 2 24-02-2005 01:04:45
¿Como colocar una imagen dentro de otra? astur_racing Gráficos 3 12-08-2004 20:26:56
Imagen a pantalla completa. gynch Gráficos 2 16-04-2004 16:46:36
Insertar una imagen encima de otra e imprimirlas CORBATIN Gráficos 0 04-06-2003 00:16:19


La franja horaria es GMT +2. Ahora son las 16:23:40.


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
Copyright 1996-2007 Club Delphi