Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 17-10-2014
ElDuc ElDuc is offline
Miembro
 
Registrado: jul 2004
Posts: 197
Poder: 0
ElDuc Va por buen camino
Gracias por tu colaboración duilioisola.

En realidad ya hago lo que tu dices, es decir si el primer pixel no coincide ya no sigo y cambio al siguiente punto de pantalla y también elimino la parte derecha e inferior donde no puede estar, pero todos los comentarios de mi primer escrito ya contaban con estas características en el código y tarda el miserere.

Tal como me sugieres adjunto el código:
Código Delphi [-]
Function FindImage(AMonitor: Byte; B: TBitmap): Tpoint;
Var
    BB: TgvBitMap;
    BBB: TBitmap;
    X, Y, XX, YY: Integer;
    Font: TRect;
    Ok: Boolean;
Begin
Result.X := -1;
Result.Y := -1;
BB := TgvBitMap.Create;
BB.Bitmap := TBitmap.Create;
BB.Bitmap.Canvas.Lock;
BB.Left := 0;
BB.Top := 0;
If (AMonitor = 1) And (Screen.MonitorCount > 0) Then
    begin
    BB.Bitmap.Width := Screen.Monitors[1].Width;
    BB.Bitmap.Height := Screen.Monitors[1].Height;
    end
else
    begin
    BB.Bitmap.Width := Screen.Width;
    BB.Bitmap.Height := Screen.Height;
    end;
GetDeskTop(AMonitor, BB);
For X := 0 To BB.Bitmap.Width - B.Width Do
    Begin
    For Y := 0 To BB.Bitmap.Height - B.Width Do
        Begin
        Ok := True;
        For XX := 0 To B.Width - 1 Do
            Begin
            For YY := 0 To B.Height - 1 Do
                Begin
                If BB.Bitmap.Canvas.Pixels[X, Y] <> B.Canvas.Pixels[XX, YY] Then
                    begin
                    Ok := False;
                    Break;
                    end;
                End;
            If Not Ok Then
                Break;
            End;
        If Ok Then
            begin
            Result.X:=X;
            Result.Y:=Y;
            Break;
            end;
        End;
    If Ok Then
        Break;
    End;
If Assigned(BBB) Then
    begin
    BBB.Canvas.Unlock;
    BBB.Free;
    end;
If Assigned(BB) Then
    begin
    BB.Bitmap.Canvas.Unlock;
    BB.Free;
    end;
End;

Lo del monitor es porque trabajo con 2.

Saludos.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Zoom de una imagen en otra imagen Juliajuli Gráficos 1 02-09-2013 18:17:35
Buscar posición de una imagen en pantalla ZayDun Varios 7 26-06-2013 22:20:43
Comparar imagen en pantalla con otra imagen gorgori Gráficos 4 24-12-2010 13:17:22
Buscar imagen franfl C++ Builder 2 29-03-2008 14:28:44
Ver imagen en un DBImage en tamaño mayor pablorc Gráficos 2 23-01-2006 16:16:21


La franja horaria es GMT +2. Ahora son las 22:58:39.


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