| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- unit Unit1;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
- ComCtrls, Spin, ExtCtrls, BCFilters, BGRAVirtualScreen, BGRABitmap,
- BGRABitmapTypes, BCTypes, BGRATextFX, Math, BCEffect;
- type
- { TForm1 }
- TForm1 = class(TForm)
- fs1: TFloatSpinEdit;
- fs2: TFloatSpinEdit;
- ListBox1: TListBox;
- ListBox2: TListBox;
- ListBox3: TListBox;
- ListBox4: TListBox;
- Timer1: TTimer;
- TrackBar1: TTrackBar;
- TrackBar2: TTrackBar;
- TrackBar3: TTrackBar;
- TrackBar4: TTrackBar;
- vs1: TBGRAVirtualScreen;
- procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
- procedure FormCreate(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- procedure fs1Change(Sender: TObject);
- procedure ListBox1SelectionChange(Sender: TObject; User: boolean);
- procedure Timer1Timer(Sender: TObject);
- procedure vs1Redraw(Sender: TObject; Bitmap: TBGRABitmap);
- private
- { private declarations }
- public
- { public declarations }
- Fade: TFading;
- Image: TBGRABitmap;
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.lfm}
- { TForm1 }
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- Image := TBGRABitmap.Create(Application.Location + 'Penguins.jpg');
- BCSimpleFilterStrList(ListBox1.Items);
- BCSimpleFilterStrList(ListBox2.Items);
- BCSimpleFilterStrList(ListBox3.Items);
- BCSimpleFilterStrList(ListBox4.Items);
- ListBox1.Selected[20] := True;
- ListBox2.Selected[21] := True;
- ListBox3.Selected[5] := True;
- ListBox4.Selected[0] := True;
- Fade.Mode := fmFadeOut;
- Fade.Step := 15;
- Fade.Reset;
- end;
- procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: boolean);
- begin
- Timer1.Enabled := False;
- end;
- procedure TForm1.FormDestroy(Sender: TObject);
- begin
- Image.Free;
- end;
- procedure TForm1.fs1Change(Sender: TObject);
- begin
- vs1.RedrawBitmap;
- end;
- procedure TForm1.ListBox1SelectionChange(Sender: TObject; User: boolean);
- begin
- vs1.RedrawBitmap;
- end;
- procedure TForm1.Timer1Timer(Sender: TObject);
- begin
- //fs1.Value := fs1.Value + 0.0002;
- fs2.Value := fs2.Value + 0.0002;
- if (fs2.Value = 1) {and (fs1.Value = 1)} then
- Timer1.Enabled:=False;
- end;
- procedure TForm1.vs1Redraw(Sender: TObject; Bitmap: TBGRABitmap);
- var
- tmp: TBGRABitmap;
- begin
- Bitmap.BlendImageOver(0, 0, Image, boTransparent, TrackBar4.Position);
- tmp := TextShadow(vs1.Width, vs1.Height, 'Penguin TELEPORT project', 20, BGRA(255,255,255,200), BGRABlack, 1, 1, 2) as TBGRABitmap;
- Bitmap.BlendImage(RandomRange(0,1), RandomRange(vs1.Height div 2 - 40,vs1.Height div 2 - 38), tmp, boLinearBlend);
- tmp.Free;
- { Apply filter 1 }
- SimpleFilter(Bitmap, StrToTBCSimpleFilter(ListBox1.GetSelectedText));
- { Apply filter 2 }
- SimpleFilter(Bitmap, StrToTBCSimpleFilter(ListBox2.GetSelectedText));
- { Apply filter 3 }
- SimpleFilter(Bitmap, StrToTBCSimpleFilter(ListBox3.GetSelectedText));
- { Apply filter 4 }
- SimpleFilter(Bitmap, StrToTBCSimpleFilter(ListBox4.GetSelectedText));
- // Fade Out the black rectangle
- Bitmap.FillRect(0, 0, vs1.Width, vs1.Height, BGRA(0, 0, 0, Fade.Execute), dmFastBlend);
- FilterRGB(Bitmap, TrackBar1.Position, TrackBar2.Position, TrackBar3.Position);
- { Weird thing }
- Zoomy(Bitmap,fs1.Value,fs2.Value);
- end;
- end.
|