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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2009, 13:18   #1
Cannibal
Форумчанин
 
Регистрация: 17.02.2008
Сообщений: 191
По умолчанию Определение цвета конкретного пикселя в монохромном bitmap'е

Как в монохромном bitmap'е определить цвет конкретного пикселя и сооставить массав А[i,j], в котором А[i,j]=0 если цвета нет и 1 в противном случае.
например картинке
соответствует матрица

0 0 0 0 0 0 1 1
0 0 0 0 0 1 0 1
0 0 0 0 1 1 0 1
0 0 0 1 1 0 0 1
0 0 1 1 0 0 0 1
0 1 1 1 1 1 1 1
1 1 0 0 0 0 0 1
1 0 0 0 0 0 0 1
Mathematicians often mix up Christmas and Halloween, because Dec.25=Oct.31.
Cannibal вне форума Ответить с цитированием
Старый 21.02.2009, 13:25   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Код:
begin
if canvas.Pixels[1,2]=clyellow then
begin
 ShowMessage('RED COLOR');
end;
Alar вне форума Ответить с цитированием
Старый 21.02.2009, 13:32   #3
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

В цикле битмап "просматривать" :
Код:
for i:=0 to Bitmap.Height-1 do
  for j:=0 to Bitmap.Width-1 do
  if Bitmap.Canvas.Pixels[i,j] = clWhite 
     then ...белая точка... 
     else ....черная точка...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 21.02.2009, 13:46   #4
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Все верно, только у предложенных способов есть явный недостаток - скорость работы
Дело в самом Canvas.Pixel, при обращении к нему вызывается метод SetPixel / GetPixel, в которые понапихано множество проверок и т.д. и т.п.
Чтобы повысить скорость приложения можно попробовать использовать метод Scanline. К тому же в справке есть хороший пример его использования.
_Engine_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение цвета объекта Tan4ik Помощь студентам 4 16.06.2008 15:53
Вот навоял: Определение цвета пикселя на DeskTop'e Comer_Jus Софт 3 21.05.2008 16:20
Определение цвета пикселя Artem Общие вопросы Delphi 8 13.07.2007 14:33
Определение цвета и размера заголовков окон VDLab Win Api 2 28.12.2006 17:24
функции чтения цвета пикселя Геннадий Общие вопросы Delphi 1 13.11.2006 20:03