Главная страница
    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.46 MB
Время: 0.037 c
2-1171709024
Trible
2007-02-17 13:43
2007.03.11
проблема с TShellTreeView


15-1170945949
Галинка
2007-02-08 17:45
2007.03.11
HELP!!! Кто-то шарит в CATIA V5


10-1130156484
DimMih
2005-10-24 16:21
2007.03.11
В чём разница между COM и ActiveX?


3-1166075069
Phoenix
2006-12-14 08:44
2007.03.11
Агрегирование с TClientDataSet


3-1166277510
O.O
2006-12-16 16:58
2007.03.11
null





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский