![]() |
3 bilder übereinander malen
tach,
ich hätt gern, dass ein TBitmap gezeichnet wird(CopyRect), darüber noch eins und noch eins(CopyRect). Aber es wird nur das oberste gezeigt, wie mach ich denn, dass die obersten zwei transparent gezeichnet werden und ich von jedem ein stück sehen kann, also mehrere Ebenen übereinander? |
Re: 3 bilder übereinander malen
TransparentBlt(...) wäre ne Lösung.
|
Re: 3 bilder übereinander malen
und wo is des?
Edit: Okay habs jetz gefunden aber ich kapiers nicht :stupid: |
Re: 3 bilder übereinander malen
Also entweder du gehst die Bilder Pixel für Pixel durch und rechnest den Transparenzwert aus, was sehr langsam sein dürfte, oder du nutzt die Graphics32-Library. TransparentBlt würde ich nicht empfehlen, da diese funktion imho ein Speicherleck hat.
|
Re: 3 bilder übereinander malen
guck mal in die Delphi-Hilfe, das gehört zur Gruppe der ganzen ..Blt-Befehle (BitBlt, StretchBlt etc.)
|
Re: 3 bilder übereinander malen
funktioniert nicht ganz so wie ich will ich erneuere die drei bilder nämlich 10 mal in der Sekunde und es bleibt immer beim erstem frame hängen, außer ich erneure es mit Fillrect oder dann ist es ja nicht transparent :gruebel: :wall:
bitte hilfe |
Re: 3 bilder übereinander malen
ich würde es so machen
Delphi-Quellcode:
irgend wie so, müste funktionieren. Alle weißen felder vom Bitmap sind dann transparent.
var
Ausgabe, //auf ausgabe wird alles gezeichnet und später auf ein canvas gezeichnet bild1,bild2,bild3 : TBitmap; //in form create erstellen und bilder laden ... Procedure Draw; var i : integer; begin bild1.transparentcolor := clwhite; bild1.transparent := true; //das gleiche mit bild 2 und3 Ausgabe.draw(0,0,bild1); Ausgabe.draw(0,0,bild2); Ausgabe.draw(0,0,bild3); PaintBox.canvas.draw(0,0,Ausgabe); end; |
Re: 3 bilder übereinander malen
Zitat:
|
Re: 3 bilder übereinander malen
Zitat:
@dajuhsa: Mich würde auch mal interessieren was du genau vor hast? Willst du nur Masking betreiben oder soll es richtige Transparenz enthalten? Bzw. wäre es schon hilfreich, wenn du mal etwas code zeigst. Denn aus Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:54 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