![]() |
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. ^^ |
Re: 2 Bilder in eines speichern
copyrect sollte dir dabei helfen können.
|
Re: 2 Bilder in eines speichern
Delphi-Quellcode:
Das funktioniert so weit. Ich habe versucht, es für 2 Bilder untereinander umzuschreiben, jedoch macht er nur *******.
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));
Delphi-Quellcode:
Ist bestimmt ein logischer Denkfehler drin, aber was mache ich falsch?
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)); |
Re: 2 Bilder in eines speichern
Schau dir die Zeile:
Delphi-Quellcode:
Nochmal genau an. Du solltest vom Image3 nicht die Weite sondern die Höhe nehmen.
Image3.Picture.Bitmap.height:=Image3.Picture.Bitmap.Width + image1.picture.bitmap.height
|
Re: 2 Bilder in eines speichern
Delphi-Quellcode:
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:
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)); |
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:
Aber kann mich auch irren.
CopyRect(rect(0,image1.picture.width,image2.picture.width,image2.picture.height+image1.picture.height) ...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz