![]() |
Bereich von Image in anderes Image kopieren
Ich möchte ein Teil eines Images in ein anderes Image kopieren.
Das Quellimage ist eine Aneinanderreihung von verschiedenen Wandtypen Variablen:
Ich habe es so programmiert:
Delphi-Quellcode:
Nun nimmt er aber immer das 1. Bild und auch ist es nicht transparent.
bMap.Canvas.CopyRect(Rect(raster.x * FIELD_WIDTH, raster.y * FIELD_WIDTH, (raster.x + 1) * FIELD_WIDTH, (raster.y + 1) * FIELD_WIDTH), iWalls.Canvas, Rect(i * 48, 0, (i + 1) * 48, 48));
Wie kann man das beheben? PS: i ist korrekt! |
Re: Bereich von Image in anderes Image kopieren
Ich bin ratlos... Ich habe es mal getestet direkt auf ein Image zu malen, und da funktionierts einwandfrei... Aber ich finde den Fehler nirgends :(
|
Re: Bereich von Image in anderes Image kopieren
Sorry, aber irgendwie scheint niemand sich hierfür zu interessieren?!
Ich habe auch weiter getestet, und habe festgestellt, dass es das 1. Image ist (100%). Genau richtig gesetzt und auch nichts übersehen... |
Re: Bereich von Image in anderes Image kopieren
Guten Morgen Fabian,
überprüfe mal deine Einstellung von bMap.Canvas.CopyMode, erkläre die Bedeutung von "raster" und reduziere die Parameter Right und Bottom von Rect() um jewils einen Pixel. Grüße vom marabu |
Re: Bereich von Image in anderes Image kopieren
Zitat:
Zitat:
Zitat:
|
Re: Bereich von Image in anderes Image kopieren
Hallo Fabian,
welchen CopyMode du verwenden musst kann ich nicht sagen, da ich deine Anforderung nicht verstehe. Im Zweifelsfall probierst du sie einfach aus. "Raster" verstehe ich jetzt so, dass die Koordinaten X und Y die Spalte und die Zeile einer Kachel in einem Grid angeben. Wenn eine Kachel quadratisch ist und eine Kantenlänge von 48 Pixeln hat, dann beginnt die erste Kachel bei X = 0 und die zweite bei X = 48, also endet die erste bei X = 47. Du lässt sie bei 48 enden, was ein Pixel zu viel ist. Es fällt dir nur nicht auf, weil alle überflüssigen Pixel verdeckt werden, wenn du links oben mit dem Malen beginnst. Nur ein übermalter Rand rechts und unten bleibt erhalten. Verringerst du den dritten Parameter (Right) von Rect(), dann stimmt alles. Freundliche Grüße |
Re: Bereich von Image in anderes Image kopieren
Liste der Anhänge anzeigen (Anzahl: 1)
Danke marabu ;)
Aber irgendwie ist das noch nicht alles... Vorweg: Eine Prozedur die im "Move" ausgeführt wird, hat immer das gleiche Image gemalt und so entstand der Effekt. Aber das hat sich erledigt. Zitat:
Zitat:
Zitat:
Jetzt gibts ein anderes Problem: Die Quelldaten sind in den Massen 48 x 48, aber die Kartenzellen sind nur 28 x 28 px groß... An sich kein Problem, außer das es so unschöne grafische artefakte gibt. Im Anhang siehts man ;) Zudem müsste ich transparenz kopieren... Geht das auch irgendwie? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:24 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