Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Buscar posición de una imagen en pantalla (https://www.clubdelphi.com/foros/showthread.php?t=83513)

ZayDun 25-06-2013 20:58:15

Buscar posición de una imagen en pantalla
 
1 Archivos Adjunto(s)
Hola.

Tengo una imagen guardada que se llama "pixeles.bmp" dicha imagen es de un tamaño pequeño ya que solo contiene varios pixeles, me gustaría que automáticamente me buscara en toda la pantalla la imagen que hace referencia a "pixeles.bmp" y saber su posición. Llevo varios días buscando y encontré una función que requiere de un archivo dll, en concreto "ImageSearchDLL.dll" en principio es justo lo que estoy buscando pero el resultado que me muestra siempre es "0:0"

Código Delphi [-]
function ImageSearch(afindImage: string; atolerance: Integer; aresultPosition:integer; var ax, ay: Integer): Boolean;
stdcall; external 'ImageSearchDLL.dll';

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
ax, ay:integer;
begin 
ImageSearch('pixeles.bmp', 50, 1, ax, ay);
Showmessage(InttoStr(ax) + ':' +InttoStr(ay));
end;

No me importa utilizar otro método, pero no se por donde empezar.

P.D Os adjunto la dll para el que me pueda ayudar.

Gracias!

ecfisa 25-06-2013 21:27:01

Cita:

Empezado por ZayDun (Mensaje 462781)
...me gustaría que automáticamente me buscara en toda la pantalla la imagen que hace referencia a "pixeles.bmp" y saber su posición.

Hola ZayDun.

Una consulta: ¿ Con que componente estas mostrando la imágen en la pantalla ?

Saludos. :)

ZayDun 25-06-2013 21:31:13

Cita:

Empezado por ecfisa (Mensaje 462783)
Hola ZayDun.

Una consulta: ¿ Con que componente estas mostrando la imágen en la pantalla ?

Saludos. :)

Hola ecfisa.

En un principio utilice un WebBrowser, pero después he estado utilizando un TImage para descartar que no fuese problema del otro componente.


Saludos.

ecfisa 25-06-2013 21:35:50

Te consulté por que acabo de probar la función que adjuntaste con un TImage totalmente en blanco (sin haberle asignado una imágen) y me devuelve "0:0" sin ninguna advertencia.
Lo que me hace pensar que en el mejor de los casos devuelve ese valor aún cuando no exista y en el peor no no funcione correctamente.

Por otro lado, tratándose de un TImage no veo el modo que pueda obtener su posición en el form a partir del nombre de archivo de la imágen...

Saludos. :)

Neftali [Germán.Estévez] 26-06-2013 10:44:25

No se de dónde has descargado este fichero, pero a mi me está avisando el antivirus (en mi caso Avast).
¿Tienes los fuentes?
¿Lo has compilado tú?

:(

ZayDun 26-06-2013 20:21:08

Cita:

Empezado por Neftali (Mensaje 462800)
No se de dónde has descargado este fichero, pero a mi me está avisando el antivirus (en mi caso Avast).
¿Tienes los fuentes?
¿Lo has compilado tú?

:(

El fichero lo he descargado ya copilado, en mi caso tengo nod32 y no me aparece ninguna amenaza de virus, puede que sea algún falso positivo, de todas formas seguiré buscando.

Gracias.

ecfisa 26-06-2013 21:20:54

Cita:

Empezado por ZayDun (Mensaje 462830)
... de todas formas seguiré buscando.

Hola ZayDun.

El componente TImage no almacena la ruta al archivo. Cuando asignas una imágen al componente, Delphi incluye el mapa de bits dentro de los recursos del form.

De allí que insista que no veo forma que alguna aplicación o función, pueda extraer la ruta y el nombre de archivo a partir de un mapa de bits.

La solución es almacenar los nombres de las imágenes cuando se asignan al componente ya sea mediante TStrings, dynamic array,... y también te podría interesar revisar este modo.

Saludos. :)

The_Duke 26-06-2013 22:20:43

Te aconsejo que busque como comparar imágenes y puedas obtener el X y Y de las coincidencias


La franja horaria es GMT +2. Ahora son las 11:06:55.

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