Code:
UNIT Unit1;
{$mode objfpc}{$H+}
INTERFACE
USES Math, SysUtils, Forms, Controls, Graphics, ExtCtrls,
StdCtrls, BGRABitmap, BGRABitmapTypes, BGRABlend,
BGRAColorInt,
BGRADefaultBitmap, BGRAFilters,
BGRAMatrix3D,
BGRAPen, BGRAPolygon,
BGRAPolygonAliased, BGRAResample,
BGRAText, BGRATextFX,
BGRAThumbnail, Classes;
TYPE
{ TForm1 }
TForm1 = CLASS(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Label1: TLabel;
Panel1: TPanel;
PROCEDURE Button1Click(Sender: TObject);
PROCEDURE Button2Click(Sender: TObject);
PROCEDURE Button3Click(Sender: TObject);
PROCEDURE Button4Click(Sender: TObject);
PROCEDURE FormCreate(Sender: TObject);
PROCEDURE InitUndoRedo;
PRIVATE
PUBLIC
END;
TUndoRedo_01 = RECORD
URBmp: TBGRABitmap;
END;
VAR
Form1: TForm1;
FUndoRedo_01: ARRAY[1..10] OF TUndoRedo_01;
Bmp: TBGRABitmap;
Helderheid: INTEGER;
IMPLEMENTATION
{$R *.lfm}
{ TForm1 }
PROCEDURE TForm1.FormCreate(Sender: TObject);
BEGIN
InitUndoRedo;
Helderheid := 255;
END;
PROCEDURE TForm1.InitUndoRedo;
VAR
I: INTEGER;
BEGIN
FOR I := 1 TO 10 DO
BEGIN
FUndoRedo_01[I].URBmp := TBGRABitmap.Create(1000, 1400, BGRA(0, 0, 0, 0));
END;
END;
PROCEDURE TForm1.Button1Click(Sender: TObject);
VAR
C: TColor;
B, G, R: TColor;
BEGIN
C := clRed;
B := C.Blue;
G := C.Green;
R := C.Red;
Bmp := TBGRABitmap.Create(100, 50, BGRA(R, G, B, Helderheid));
Canvas.Draw(20, 50, Bmp.Bitmap);
FUndoRedo_01[1].URBmp.Canvas.Draw(0, 0, Bmp.Bitmap);
END;
PROCEDURE TForm1.Button2Click(Sender: TObject);
BEGIN
Bmp.Canvas.Draw(0, 0, FUndoRedo_01[1].URBmp.Bitmap);
Canvas.Draw(20, 110, Bmp.Bitmap);
END;
PROCEDURE TForm1.Button3Click(Sender: TObject);
BEGIN
Bmp.Assign(FUndoRedo_01[1].URBmp.Bitmap);
Canvas.Draw(20, 170, Bmp.Bitmap);
END;
PROCEDURE TForm1.Button4Click(Sender: TObject);
BEGIN
Dec(Helderheid, 50);
Label1.Caption := 'Helderheid = ' + IntToStr(Helderheid);
IF Bmp <> nil THEN Bmp := nil;
END;
END.
Bookmarks