Delphi. Assign til at kopiere billeder
Delphi5.Jeg skal samle to billeder (imgBitmap1 og imgBitmap2, hver ca. 500 x 450 px) til et billede (imgBitmap3), og gør det således:
imgBitmap3.Height := imgBitmap1.Height;
imgBitmap3.Width := imgBitmap1.Width + imgBitmap2.Width+ 5;
// 1. billede kopieres
for I := 0 to imgBitmap1.Width do
for J := 0 to imgBitmap1.Height do
imgBitmap3.Canvas.Pixels[I , J] := imgBitmap1.Canvas.Pixels[I, J];
// 2. billede kopieres
for I := 0 to imgBitmap2.Width do
for J := 0 to imgBitmap2.Height do
imgBitmap3.Canvas.Pixels[imgBitmap1.Width + 5 + I , J] :=
imgBitmap2.Canvas.Pixels[I, J];
Det tager jo ret lang tid (ca. 9 sek) og derfor prøvede jeg at bruge:
// 1. billede kopieres
imgBitmap3.Picture.Assign(imgBitmap1.Picture);
imgBitmap3.Width := imgBitmap1.Width + imgBitmap2.Width+ 5;
// 2. billede kopieres
for I := 0 to imgBitmap2.Width do
for J := 0 to imgBitmap2.Height do
imgBitmap3.Canvas.Pixels[imgBitmap1.Width + 5 + I , J] :=
imgBitmap2.Canvas.Pixels[I, J];
Men det virker ikke, kun imgBitmap1 ses.
Gør jeg noget forkert?
Er der andre muligheder, som er hurtigere end pixelkopieringen?