83 lines
1.8 KiB
ObjectPascal

unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
BGRAGraphicControl, BGRABitmap, BCTypes, BGRABitmapTypes;
type
{ TForm1 }
TForm1 = class(TForm)
BGRAGraphicControl1: TBGRAGraphicControl;
Timer1: TTimer;
procedure BGRAGraphicControl1Redraw(Sender: TObject; Bitmap: TBGRABitmap);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
bkg: TBGRABitmap;
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.BGRAGraphicControl1Redraw(Sender: TObject; Bitmap: TBGRABitmap
);
var
i: integer;
bmp: TBGRABitmap;
begin
//Bitmap.Fill(BGRABlack);
Bitmap.FillTransparent;
for i:= 0 to Bitmap.Width -1 do
begin
Bitmap.DrawVertLine(i,{Random(Bitmap.Height)}0,Random(Bitmap.Height),BGRA(255,255,255,Random(25)));
Bitmap.DrawVertLine(i,Random(Bitmap.Height),Random(Bitmap.Height),BGRA(255,255,255,Random(50)));
end;
bmp := Bitmap.FilterBlurMotion(10,270,True) as TBGRABitmap;
BGRAReplace(bmp, bmp.FilterBlurRadial(1,rbFast));
Bitmap.BlendImageOver(0,0,bkg,boLinearBlend);
Bitmap.BlendImageOver(0,0,bmp,boLinearBlend);
bmp.Free;
end;
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
Timer1.Enabled := False;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
bkg := TBGRABitmap.Create('Lighthouse.jpg');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
bkg.Free;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
BGRAGraphicControl1.DiscardBitmap;
end;
end.