| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- unit fdMultitextures;
- interface
- uses
- System.SysUtils,
- System.Types,
- System.UITypes,
- System.Classes,
- System.Variants,
- System.UIConsts,
- System.Math,
- FMX.Types,
- FMX.Controls,
- FMX.Forms,
- FMX.Graphics,
- FMX.Dialogs,
- FMX.Controls.Presentation,
- FMX.StdCtrls,
- FMX.Objects,
- uGBEImageUtils,
- FMX.Edit,
- FMX.EditBox,
- FMX.SpinBox,
- FMX.Effects,
- FMX.Filter.Effects,
- FMX.Ani,
- FMX.Layouts;
- type
- TFormMultitextures = class(TForm)
- imgCarte: TImage;
- imgCanalBleu: TImage;
- imgCanalVert: TImage;
- imgFond: TImage;
- imgCanalRouge: TImage;
- Image6: TImage;
- Button1: TButton;
- OpenDialog1: TOpenDialog;
- SpinBox1: TSpinBox;
- Label1: TLabel;
- Button8: TButton;
- SaveDialog1: TSaveDialog;
- Rectangle1: TRectangle;
- Layout1: TLayout;
- Layout2: TLayout;
- GridLayout1: TGridLayout;
- Rectangle2: TRectangle;
- Rectangle3: TRectangle;
- Rectangle4: TRectangle;
- Layout3: TLayout;
- Rectangle5: TRectangle;
- GridLayout2: TGridLayout;
- procedure Button1Click(Sender: TObject);
- procedure Button8Click(Sender: TObject);
- procedure imgCarteClick(Sender: TObject);
- procedure imgFondClick(Sender: TObject);
- procedure imgCanalRougeClick(Sender: TObject);
- procedure imgCanalVertClick(Sender: TObject);
- procedure imgCanalBleuClick(Sender: TObject);
- private
- procedure CalculerMAxCrop;
- public
- end;
- var
- FormMultitextures: TFormMultitextures;
- implementation // -------------------------------------------------------------
- {$R *.fmx}
- procedure TFormMultitextures.Button1Click(Sender: TObject);
- begin
- Image6.Bitmap.Width := imgCarte.Bitmap.Width;
- Image6.Bitmap.Height := imgCarte.Bitmap.Height;
- Image6.Bitmap.CopyFromBitmap(MultiTexturing(imgCarte.Bitmap, imgFond.Bitmap,
- imgCanalRouge.Bitmap, imgCanalVert.Bitmap, imgCanalBleu.Bitmap,
- round(SpinBox1.Value)));
- end;
- procedure TFormMultitextures.CalculerMAxCrop;
- var
- maxcrop: integer;
- begin
- maxcrop := min(imgCanalBleu.Bitmap.Width, imgCanalBleu.Bitmap.Height);
- maxcrop := min(maxcrop, imgCanalVert.Bitmap.Width);
- maxcrop := min(maxcrop, imgCanalVert.Bitmap.Height);
- maxcrop := min(maxcrop, imgFond.Bitmap.Width);
- maxcrop := min(maxcrop, imgFond.Bitmap.Height);
- maxcrop := min(maxcrop, imgCanalRouge.Bitmap.Width);
- maxcrop := min(maxcrop, imgCanalRouge.Bitmap.Height);
- SpinBox1.Max := maxcrop;
- end;
- procedure TFormMultitextures.imgCanalBleuClick(Sender: TObject);
- begin
- if OpenDialog1.Execute then
- imgCanalBleu.Bitmap.LoadFromFile(OpenDialog1.FileName);
- CalculerMAxCrop;
- end;
- procedure TFormMultitextures.imgCanalRougeClick(Sender: TObject);
- begin
- if OpenDialog1.Execute then
- imgCanalRouge.Bitmap.LoadFromFile(OpenDialog1.FileName);
- CalculerMAxCrop;
- end;
- procedure TFormMultitextures.imgCanalVertClick(Sender: TObject);
- begin
- if OpenDialog1.Execute then
- imgCanalVert.Bitmap.LoadFromFile(OpenDialog1.FileName);
- CalculerMAxCrop;
- end;
- procedure TFormMultitextures.imgCarteClick(Sender: TObject);
- begin
- if OpenDialog1.Execute then
- imgCarte.Bitmap.LoadFromFile(OpenDialog1.FileName);
- CalculerMAxCrop;
- end;
- procedure TFormMultitextures.imgFondClick(Sender: TObject);
- begin
- if OpenDialog1.Execute then
- imgFond.Bitmap.LoadFromFile(OpenDialog1.FileName);
- CalculerMAxCrop;
- end;
- procedure TFormMultitextures.Button8Click(Sender: TObject);
- begin
- if SaveDialog1.Execute then
- Image6.Bitmap.SaveToFile(SaveDialog1.FileName);
- end;
- end.
|