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

Вниз

монохром   Найти похожие ветки 

 
Тиммммм   (2007-01-05 16:34) [0]

народ может кто знает как из цветной картинки сделать черно-белую,спасибо


 
Desdechado ©   (2007-01-05 16:37) [1]

каждый пиксел с цветом больше энного сделать черным, меньше энного - белым


 
antonn ©   (2007-01-05 16:41) [2]

procedure PrepareBitmap(_B_out:Tbitmap);
const  MaxPixelCount = MaxInt div SizeOf(TRGBTriple);
type  PRGBArray = ^TRGBArray;
TRGBArray = array[0..MaxPixelCount-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
        RowOut[x].rgbtRed:=round(RowOut[x].rgbtRed*0.30+RowOut[x].rgbtGreen*0.59+RowOut[x].rgbtBlue*0.11);
        RowOut[x].rgbtGreen:=RowOut[x].rgbtRed;
        RowOut[x].rgbtBlue:=RowOut[x].rgbtRed;
  end;
end
end;


 
antonn ©   (2007-01-05 16:46) [3]

если нужно сделать порог цвета (что сомневаюсь):
Lr,Lg,Lb:byte - пороговые значения для каналов красного, зеленого, синего
procedure PrepareBitmapLevel(_B_out:Tbitmap; Lr,Lg,Lb:byte);
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) then begin
         RowOut[x].rgbtRed:=255;
         RowOut[x].rgbtGreen:=255;
         RowOut[x].rgbtBlue:=255;
      end else begin
         RowOut[x].rgbtRed:=0;
         RowOut[x].rgbtGreen:=0;
         RowOut[x].rgbtBlue:=0;
      end;
   end;
 end
end;


 
Тиммммм   (2007-01-05 16:47) [4]

спасибо выручили



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

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

Наверх




Память: 0.47 MB
Время: 0.062 c
15-1167520705
Petr V. Abramov
2006-12-31 02:18
2007.01.21
Для поддержки сушествующего настроения конференции :)))


2-1167143472
Veltis
2006-12-26 17:31
2007.01.21
Как написать мини фаервол?


4-1157122684
Teenager
2006-09-01 18:58
2007.01.21
поместить чужое окно(приложение) в свое окно(window, panel, etc.)


3-1162528991
fester
2006-11-03 07:43
2007.01.21
подключение к oracle


15-1167815836
palva
2007-01-03 12:17
2007.01.21
Их нравы