Показать сообщение отдельно
  #6  
Старый 03.02.2012, 16:18
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 663
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Я бы работал по регионам.
1. Создем глобальный регион размером с картинку CreateRectRgn(0, 0, BitMap.Width, BitMap.Height)
2. Бегаем по строкам и столбцам битмапа
2.1 Если точка НЕ входит в глобальный регион, то идем в 2, иначе (2.2)
2.2 "выделяем пятно" от этой точки процедурой _Do из моего предыдущего поста.
2.3 Выделив регион удаляем, его из глобального

По такому алгоритму пятна никак не сольются воедино.
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием