Avatar billede KurtG Forsker
29. maj 2021 - 19:06

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?
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester