I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
type TForm1 = class(TForm) Button1: TButton; ImageList1: TImageList; ImageList2: TImageList; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject); var B: TBitmap; begin //gemmer billederne fra ImageList1 i eet stor bitmap B := TBitmap.Create; try B.Handle := ImageList1.GetImageBitmap; B.SaveToFile(\'c:\\images.bmp\'); finally B.Free; end; end;
procedure TForm1.Button2Click(Sender: TObject); var Source, B: TBitmap; i, j, Count: Integer; begin Source := TBitmap.Create; try Source.LoadFromFile(\'c:\\images.bmp\');
B := TBitmap.Create; try B.Width := ImageList1.Width; B.Height := ImageList1.Height;
Count := 0; for j := 0 to (Source.Height div ImageList1.Height) - 1 do for i := 0 to (Source.Width div ImageList1.Width) - 1 do begin //klipper bilederne fra det store bitmap ud og gemmer dem i ImageList2 BitBlt(B.Canvas.Handle, 0, 0, ImageList1.Width, ImageList1.Height, Source.Canvas.Handle, i * ImageList1.Width, j * ImageList1.Height, SrcCopy);
ImageList2.Add(B, nil);
Inc(Count); if Count >= ImageList1.Count then Break; end; finally B.Free; end; finally Source.Free; end; end;
type TNewImageList = class(TImageList) private { Private declarations } protected { Protected declarations } public { Public declarations } Procedure LoadFromFile(FileName : TFileName); Procedure SaveToFile(FileName : TFileName); published { Published declarations } end;
procedure Register;
implementation
Procedure TNewImageList.SaveToFile(FileName : TFileName); begin //gemmer billederne fra ImageList1 i eet stor bitmap with TBitmap.Create do try Handle := GetImageBitmap; SaveToFile(FileName); finally Free; end; end;
Procedure TNewImageList.LoadFromFile(FileName : TFileName); var Source, B: TBitmap; i, j, Count: Integer; begin Source := TBitmap.Create; try Source.LoadFromFile(FileName);
B := TBitmap.Create; try B.Width := Width; B.Height := Height;
Count := 0; for j := 0 to (Source.Height div Height) - 1 do for i := 0 to (Source.Width div Width) - 1 do begin //klipper bilederne fra det store bitmap ud og gemmer dem i ImageList2 BitBlt(B.Canvas.Handle, 0, 0, Width, Height, Source.Canvas.Handle, i * Width, j * Height, SrcCopy);
Add(B, nil);
Inc(Count); if Count >= Count then Break; end; finally B.Free; end; finally Source.Free; end; end;
procedure Register; begin RegisterComponents(\'Samples\', [TNewImageList]); end;
hvis du nu har 7 billeder i størrelsen 20 * 20, laver den et billede der er 80 * 40. dvs. der er plads til otte billeder. Så hvis du regner antallet ud ved at bruge de små billeders format i forhold til det store billede, vil du få otte billede hvor det sidste bare er noget flimmer
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.