Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2011, 03:21   #1
bmp
Новичок
Джуниор
 
Аватар для bmp
 
Регистрация: 16.10.2011
Сообщений: 3
Восклицание Поиск изображения на экране

Вопрос решен! нашел исходник определяющий это. Скачать можно тут http://you43.ru/view/post:124865

Пытаюсь сделать поиск части изображения на экране.
Берется снимок экрана и в нем ищу изображение Image3 с формы (pf24Bit).
Ничего не выходит, результат ввиде координат должен появится в memo2. Сразу скажу, поиск аналогичных кодов в интернете ничего не дал.
Вот код.

Код:
var
 bmp_scr:TBitmap;

function GetScreenShot(PixelFormat:TPixelFormat;Width,Height:Integer): TBitmap;
var
  Desktop: HDC;
begin
  Result  := TBitmap.Create;
  Desktop := GetDC(0);
  try
    try
      Result.PixelFormat := PixelFormat;
      Result.Width := Width;
      Result.Height := Height;
      BitBlt(Result.Canvas.Handle, 0, 0, Result.Width, Result.Height, Desktop, 0, 0, SRCCOPY);
      Result.Modified := True;
    finally
      ReleaseDC(0, Desktop);
    end;
  except
    Result.Free;
    Result := nil;
  end;
end;

Function TForm1.FindSmall(x1,y1:integer):boolean;
var x,y:integer;
begin
result:=false;
x:=0; while x<>image3.Width do begin
y:=0; while y<>image3.Height do begin
if bmp_scr.Canvas.Pixels[x1+x,y1+y]<>image3.Canvas.Pixels[x,y] then exit;
inc (y);
end;
inc (x);
end;
result:=true;
end;

procedure TForm1.Find;
var x,y:integer;
begin
bmp_scr:=GetScreenShot(pf24Bit,screen.Width,screen.Height);
memo2.Lines.add(inttostr(screen.Width));
memo2.Lines.add(inttostr(screen.Height));
x:=0; while x<>screen.Width-image3.Width do begin
y:=0; while y<>screen.Height-image3.Height do begin
if FindSmall(x,y) then begin
    memo2.Lines.Add(inttostr(x));
    memo2.Lines.Add(inttostr(y));
    exit;
end;
inc (y);
end;
inc (x);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Find;
end;
инкогнито

Последний раз редактировалось bmp; 16.10.2011 в 04:23.
bmp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск одного изображения в другом czuryk Мультимедиа в Delphi 12 29.04.2013 18:13
Поиск фрагмента изображения на картинке banderas.antonio C# (си шарп) 3 07.05.2011 18:45
Поиск изображения в RichEdit artemavd Общие вопросы Delphi 6 23.04.2011 09:45
Поиск и вывод нужного изображения в Excel 2007, VBA Stlline Microsoft Office Excel 5 11.08.2010 09:09
Чтение изображения из базы данных, Вместо изображения - "System.Byte[]" ruelCrow Общие вопросы .NET 3 10.07.2008 23:29