Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите перевести код из Делфи и Бидер 
:(
    Опции темы
prostik
Дата 26.4.2007, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



Ситуация была такая - есть скриншот экрана (Картинка1), и маленькая картинка например 20 на 20 пикс (Картинка2), как можно быстро определить, что на Картинке1 есть Картинка2....
так вот коечо сделал,но как это сделать чтоб в билдере работала,можете помочь перевести)


function CompareImages(A, B : TBitmap): Boolean;
var
  i, j : integer;
  p1, p2 : PARGB;
begin
  Result:=False;

  for i := 0 to A.Height - 1 do begin
    p1 := A.ScanLine[i];
    p2 := B.ScanLine[i];
    for j := 0 to A.Width - 1 do begin
      if not ((p1[j].r = p2[j].r) and (p1[j].g = p2[j].g) and (p1[j].b = p2[j].b)) then exit;
    end;
  end;

  Result := True;
end;

function SearchImage(A, B : TBitmap): Boolean;
var
  x, y: Integer;
  Rect1, Rect2: TRect;
  C: TBitmap;
begin
  Result := True;

  try
    C :=  TBitmap.Create;
    C.Assign(B);

    Rect1.Left := 0;
    Rect1.Top := 0;
    Rect1.Right := B.Width - 1;
    Rect1.Bottom := B.Height - 1;

    for y := 0 to A.Height - B.Height do
      for x := 0 to A.Width - B.Width do begin

         Rect2.Left := x;
         Rect2.Top := y;
         Rect2.Right := B.Width - 1 + x;
         Rect2.Bottom := B.Height - 1 + y;

         C.Canvas.CopyRect(Rect1, A.Canvas, Rect2);

         if CompareImages(B, C) then Exit;
      end;

    Result := False;

  finally
    C.Free;
  end;
end;
PM MAIL   Вверх
JAnty
  Дата 26.4.2007, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 6.12.2004
Где: Москва

Репутация: 1
Всего: 2



Если б Вы хорошо знали С++, то это не составило бы труда.
Вот например начало:
Код

bool CompareImages(TBitmap A,  TBitmap B)
{
   int i, j;
   PARGB p1, p2;
   bool Result = false; // возвращать значение методом ''return Result;''
//...
 return Result;
}

 Всё почти одинаково...

Это сообщение отредактировал(а) JAnty - 26.4.2007, 16:49


--------------------
Русский справочник по WinAPI

Возможно всё, что возможно вообразить! Это и значит быть гением как я!
PM MAIL   Вверх
SenkraD
Дата 26.4.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 9
Всего: 23



JAnty,  а в каком хедере лежит PARGB


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
JAnty
  Дата 26.4.2007, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 6.12.2004
Где: Москва

Репутация: 1
Всего: 2



А это уже не мои проблемы...  smile

Добавлено через 1 минуту и 9 секунд
Пуст будет RGB или это его собственный тип может...

Добавлено через 2 минуты и 42 секунды
Хотя не, RGB это не тип данных вродебы.


--------------------
Русский справочник по WinAPI

Возможно всё, что возможно вообразить! Это и значит быть гением как я!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0606 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.