Недавно добавленные исходники

•  Animation Loaders  864

•  DeLiKaTeS Tetris (Тетрис)  5 813

•  TDictionary Custom Sort  7 771

•  Fast Watermark Sources  7 443

•  3D Designer  10 673

•  Sik Screen Capture  7 996

•  Patch Maker  8 199

•  Айболит (remote control)  8 250

•  ListBox Drag & Drop  7 063

•  Доска для игры Реверси  100 569

•  Графические эффекты  8 325

•  Рисование по маске  7 701

•  Перетаскивание изображений  6 305

•  Canvas Drawing  6 677

•  Рисование Луны  6 607

•  Поворот изображения  5 750

•  Рисование стержней  4 687

•  Paint on Shape  3 397

•  Генератор кроссвордов  4 368

•  Головоломка Paletto  3 514

•  Теорема Монжа об окружностях  4 327

•  Пазл Numbrix  2 802

•  Заборы и коммивояжеры  3 747

•  Игра HIP  2 520

•  Игра Go (Го)  2 517

•  Симулятор лифта  2 912

•  Программа укладки плитки  2 338

•  Генератор лабиринта  3 080

•  Проверка числового ввода  2 574

•  HEX View  2 978

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Добавление шума в изображение



Автор: Fenik

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Добавление шума в изображение

Зависимости: Graphics
Автор:       Fenik, chook_nu@uraltc.ru, Новоуральск
Copyright:   Автор Федоровских Николай
Дата:        5 июня 2002 г.
***************************************************** }

procedure AddNoise(Bitmap: TBitmap; Amount: Integer; Mono: Boolean);
{Если Mono = False, то точки цветные, иначе - чёрно-белые.
 Процедура взята из библиотеки FastLIB и немного переделана}

  function BLimit(B: Integer): Byte;
  begin
    if B < 0 then
      Result := 0
    else if B > 255 then
      Result := 255
    else
      Result := B;
  end;

type
  TRGB = record
    B, G, R: Byte;
  end;
  pRGB = ^TRGB;
var
  x, y, i, a: Integer;
  Dest: pRGB;
begin
  Bitmap.PixelFormat := pf24Bit;
  Randomize;
  i := Amount shr 1;
  if Mono then
    for y := 0 to Bitmap.Height - 1 do
    begin
      Dest := Bitmap.ScanLine[y];
      for x := 0 to Bitmap.Width - 1 do
      begin
        a := Random(Amount) - i;
        with Dest^ do
        begin
          r := BLimit(r + a);
          g := BLimit(g + a);
          b := BLimit(b + a);
        end;
        Inc(Dest);
      end;
    end
  else
    for y := 0 to Bitmap.Height - 1 do
    begin
      Dest := Bitmap.ScanLine[y];
      for x := 0 to Bitmap.Width - 1 do
      begin
        with Dest^ do
        begin
          r := BLimit(r + Random(Amount) - i);
          g := BLimit(g + Random(Amount) - i);
          b := BLimit(b + Random(Amount) - i);
        end;
        Inc(Dest);
      end;
    end;
end;

Пример использования:

AddNoise(FBitmap, 65, False); 




Похожие по теме исходники

Image2Text (изображение в текст)




Copyright © 2004-2026 "Delphi Sources" by «SiteAnalyzer». Delphi World FAQ

Группа ВКонтакте