Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 2 Bilder in eines speichern (https://www.delphipraxis.net/60067-2-bilder-eines-speichern.html)

Chrissi91 2. Jan 2006 15:39


2 Bilder in eines speichern
 
Hi :hi:,

ich möchte für meinen Vater ein kleines Programm schreiben, dass 2 BMP - Dateien in eines birngt. D.h. eines wird geöffnet, dass andere wird auch geladen und wir daneben kopiert bzw. darunter. Viell habt ihr für mich ein paar Ansätze oder Ideenanregungen.

also:

bild1 + bild2

oder

bild1
+
bild2

Danke für eure Hilfe. ^^

Nikolas 2. Jan 2006 15:45

Re: 2 Bilder in eines speichern
 
copyrect sollte dir dabei helfen können.

Chrissi91 3. Jan 2006 15:02

Re: 2 Bilder in eines speichern
 
Delphi-Quellcode:
 image3.picture.assign(image1.picture.bitmap);
 Image3.Picture.Bitmap.Width:=Image3.Picture.Bitmap.Width + image1.picture.bitmap.width;
 image3.picture.Bitmap.Canvas.CopyRect(rect(image1.Picture.width,0,image2.picture.Width+
 image1.picture.width,image2.picture.height),image2.picture.bitmap.Canvas, rect(0, 0,
 image2.picture.width, image2.picture.Height));
Das funktioniert so weit. Ich habe versucht, es für 2 Bilder untereinander umzuschreiben, jedoch macht er nur *******.

Delphi-Quellcode:
 image3.picture.assign(image1.picture.bitmap);
 Image3.Picture.Bitmap.height:=Image3.Picture.Bitmap.Width + image1.picture.bitmap.height;
 image3.picture.Bitmap.Canvas.CopyRect(rect(image1.Picture.height,0,image2.picture.height+
 image1.picture.width,image2.picture.height),image2.picture.bitmap.Canvas, rect(0, 0,
 image2.picture.width, image2.picture.Height));
Ist bestimmt ein logischer Denkfehler drin, aber was mache ich falsch?

jim_raynor 3. Jan 2006 15:33

Re: 2 Bilder in eines speichern
 
Schau dir die Zeile:

Delphi-Quellcode:
Image3.Picture.Bitmap.height:=Image3.Picture.Bitmap.Width + image1.picture.bitmap.height
Nochmal genau an. Du solltest vom Image3 nicht die Weite sondern die Höhe nehmen.

Chrissi91 3. Jan 2006 15:40

Re: 2 Bilder in eines speichern
 
Delphi-Quellcode:
 image3.picture.assign(image1.picture.bitmap);
 Image3.Picture.Bitmap.height:=Image3.Picture.Bitmap.height + image1.picture.bitmap.height;
 image3.picture.Bitmap.Canvas.CopyRect(rect(image1.Picture.height,0,image2.picture.height+
 image1.picture.width,image2.picture.height),image2.picture.bitmap.Canvas, rect(0, 0,
 image2.picture.width, image2.picture.Height));
Hm, es klappt immer noch nicht. das erste Bild ist richtig. Die Höhe ist auch richtig. Es ist also genug Platz nach unten hin da. Nur ist dort nur ein weißes Feld und nicht das Bild. :gruebel:

jim_raynor 3. Jan 2006 15:51

Re: 2 Bilder in eines speichern
 
Und jetzt schaust du dir nochmal genau CopyRect und Rect an. Du kannst nicht einfach Height durch Width ersetzen. Du musst auch die Reihenfolge der Parameter ändern, da du ja nicht Left ändern musst sondern Top. Du hast also tatsächlichen einen Logischen Fehler drin.

So müsste es richtig sein:

Delphi-Quellcode:
CopyRect(rect(0,image1.picture.width,image2.picture.width,image2.picture.height+image1.picture.height) ...
Aber kann mich auch irren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz