{ **** 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;
beginif B < 0 then
Result := 0
elseif 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 thenfor y := 0 to Bitmap.Height - 1 dobegin
Dest := Bitmap.ScanLine[y];
for x := 0 to Bitmap.Width - 1 dobegin
a := Random(Amount) - i;
with Dest^ dobegin
r := BLimit(r + a);
g := BLimit(g + a);
b := BLimit(b + a);
end;
Inc(Dest);
end;
endelsefor y := 0 to Bitmap.Height - 1 dobegin
Dest := Bitmap.ScanLine[y];
for x := 0 to Bitmap.Width - 1 dobeginwith Dest^ dobegin
r := BLimit(r + Random(Amount) - i);
g := BLimit(g + Random(Amount) - i);
b := BLimit(b + Random(Amount) - i);
end;
Inc(Dest);
end;
end;
end;
Если Вас заинтересовала или понравилась информация по разработке на Delph - "Добавление шума в изображение", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!