Эффект Блоки

Советы » Bitmap » Эффект Блоки

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Эффект 'Блоки'

Зависимости: Windows, Classes, Graphics
Автор:       Fenik, chook_nu@uraltc.ru, Новоуральск
Copyright:   Собственное написание (Николай федоровских)
Дата:        1 июня 2002 г.
***************************************************** }

procedure

Blocks(Bitmap: TBitmap; Hor, Ver, MaxOffset: Integer; BackColor: TColor); {вырезаем прямоугольники со сторонами Hor Ver и копируем их в радиусе MaxOffset} function

RandomInRadius(Num, Radius: Integer): Integer; begin

if

Random(2) = 0 then

Result := Num + Random(Radius) else

Result := Num - Random(Radius); end

; var

x, y, xd, yd: Integer; Bmp: TBitmap; begin

Bmp := TBitmap.Create; try

Bmp.Assign(Bitmap); Bitmap.Canvas.Brush.Color := BackColor; Bitmap.Canvas.FillRect(Rect(0, 0, Bitmap.Width, Bitmap.Height)); xd := (Bitmap.Width - 1) div

Hor; yd := (Bitmap.Height - 1) div

Ver; Randomize; for

x := 0 to

xd do

for

y := 0 to

yd do

BitBlt(Bitmap.Canvas.Handle, RandomInRadius(Hor * x, MaxOffset), RandomInRadius(Ver * y, MaxOffset), Hor, Ver, Bmp.Canvas.Handle, Hor * x, Ver * y, SRCCOPY); finally

Bmp.Free; end

; end

;

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

Blocks(FBitmap, FBitmap.Width div 10, FBitmap.Height div 10, 4, clWhite); 

Другое по теме:

Категории

Статьи

Советы

Copyright © 2023 - All Rights Reserved - www.delphirus.com