Показать сообщение отдельно
  #3  
Старый 13.02.2010, 11:09
x128 x128 вне форума
Новичок
 
Регистрация: 03.02.2010
Сообщения: 64
Репутация: 133
По умолчанию

как-то так:
Код:
procedure TForm1.ButtonClick(Sender: TObject);
var
  x,y,t: integer;
  c: byte;
  img: pByteArray;
begin
  t:=128; //порог
  for y:=0 to image1.Picture.Height-1 do begin
    img:=image1.Picture.Bitmap.ScanLine[y];
    for x:=0 to image1.Picture.Width-1 do begin
      c:=(img[x*3+0]+img[x*3+1]+img[x*3+2]) div 3; //(r+g+b)/3
      if c<t then c:=0 else c:=255;
      img[x*3+0]:=c;
      img[x*3+1]:=c;
      img[x*3+2]:=c;
    end;
  end;
end;
Писал прямо тут, на работоспособность естественно не проверял, но вроде не ошибся. Возможно в конце понадобится image1.Repaint;
Ответить с цитированием