Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.11;
Скачать: CL | DM;

Вниз

Алгоритм заливки   Найти похожие ветки 

 
hgd   (2006-07-10 19:59) [0]

Подскажите, алгоритм для заливки области с пороговым значением слоя. Как в Photoshop-е выделение волшебной палочкой!


 
antonn ©   (2006-07-10 20:44) [1]

что такое пороговое значение?
по каналам (Lr,Lg,Lb - каналы RGB, _b - куда заливать, ниже уровня или выше):
procedure PrepareBitmapLevel(_B_out:Tbitmap; Lr,Lg,Lb:byte; _b:boolean);
const Pixels = MaxInt div SizeOf(TRGBTriple);
type PRGBArray = ^TRGBArray;
    TRGBArray = array[0..Pixels-1] of TRGBTriple;
var x, y: Integer; RowOut: PRGBArray;
begin
 _B_out.PixelFormat:=pf24bit;
 for y:=0 to _B_out.Height-1 do begin
    RowOut:= _B_out.ScanLine[y];
   for x:=0 to _B_out.Width-1 do begin
      if (RowOut[x].rgbtRed>Lr)and(RowOut[x].rgbtGreen>Lg)and(RowOut[x].rgbtBlue>Lb)and(_ b) then begin
         RowOut[x].rgbtRed:=255;
         RowOut[x].rgbtGreen:=255;
         RowOut[x].rgbtBlue:=255;
      end else
        if (RowOut[x].rgbtRed<Lr)and(RowOut[x].rgbtGreen<Lg)and(RowOut[x].rgbtBlue<Lb)and not(_b) then begin
         RowOut[x].rgbtRed:=255;
         RowOut[x].rgbtGreen:=255;
         RowOut[x].rgbtBlue:=255;
      end;
   end;
 end
end;


 
hgd   (2006-07-10 21:47) [2]

Ну имеется ввиду пороговое значение заливки, как в Photoshop. Например нажимаем на пиксель X,Y и затем закрашивается связная область от X,Y по заданному порогу.


 
antonn ©   (2006-07-11 05:31) [3]

связная - это как в пайнте заливка?


 
miek ©   (2006-07-11 08:04) [4]

Обычный алгоритм flood fill, только с проверкой каждого пиксела не на цвет, а на пороговое правило...


 
hgd   (2006-07-11 16:20) [5]

А что это за алгоритм flood fill?


 
grouzd)ev ©   (2006-07-11 19:09) [6]

думаю обычный волновой. хотя можно не парится и сделать за 3 минуты через рекурсию =) впрочем, может я ошибаюсь

---
... we are walking on a thin line and you better avoid the risk ...


 
hgd   (2006-07-11 20:30) [7]

А пример есть или его суть?


 
grouzd)ev ©   (2006-07-11 20:49) [8]

http://algolist.manual.ru/maths/graphs/shortpath/ или "волновой алгоритм" в поисковике
ну а рекурсию проходят еще в школе =)

---
... we are walking on a thin line and you better avoid the risk ...



Страницы: 1 вся ветка

Текущий архив: 2007.03.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.037 c
2-1171650178
Kolan
2007-02-16 21:22
2007.03.11
Создание формы динамически &amp;#151; говорит ресурс не найден.


15-1171297066
vasIZmax
2007-02-12 19:17
2007.03.11
Что же ты делаешь-то...<censor> или "Божья рука"?


4-1162469151
toboom
2006-11-02 15:05
2007.03.11
Проблема использования таймера из MMSystem


2-1172077776
KLAUS
2007-02-21 20:09
2007.03.11
Секции в файле


2-1172051790
antonn
2007-02-21 12:56
2007.03.11
Отрисовка Tedit на другом Tcanvas