![]() |
PNG auf Paintbox zeichnen
Hallo DP,
ich habe eine Frage: Und zwar habe ich eine PNG Datei. Diese lade ich in ein TBitmap. Und dieses Bitmap male ich später auf ein anderes, welches dann auf die Paintbox gezeichnet wird. Zur Zeit sieht das bei mir so aus:
Code:
Das PNG wird so in die Bufferbitmap geladen:
Hintergrundbild -----|
|-----BB-->|---> Prim. Bufferbitmap -BB-> Paintbox PNG --> Sek. Bufferbitmap -C.D.-|
Delphi-Quellcode:
Dabei steht oben BB für BitBlt und C.D. für Canvas.Draw.
PNG := TPNGObject.Create;
PNG.LoadFromFile(<Datei>); <Sek. Bufferbitmap>.Assign(PNG); FreeAndNil(PNG); Erstes unterstützt meiner Information nach keine Transparenz, Zweiteres hingegen schon. MfG xZise |
Re: PNG auf Paintbox zeichnen
Versuch es mal mit "PNG.Draw..." oder so. Die Kompon. hat eine eigene Zeichenroutiene.
Wenn du das PNG-Bitmap in ein Delphi-"TBitmap" lädst werden die Transparenzen (?), transparenten Teile ggf. nicht über nommen. Nutze einfacher Weise die GR32 unit mit ihren Bitmaps, diese unterstützen so etwas. |
Re: PNG auf Paintbox zeichnen
Cool :) Ich habe das jetzt in Benutzung!
Danke! Aber ein kleines Problem tritt z.Zt. auf:
Delphi-Quellcode:
Da kann er einfach nicht die Ressource finden, wobei die existieren muss, weil es vorher ja auch ging. Nur mache ich atm nicht den Umweg über ein PNG-Objekt.
images[i].LoadFromResourceName(HInstance, names[i])
So sieht die .rc aus:
Code:
BigSnow RCDATA "snow_big.png"
SmallSnow RCDATA "snow_small.png" NormalSnow RCDATA "snow_medium.png"
Delphi-Quellcode:
Ich vermute, dass der Typus nicht korrekt ist, aber hier wird überall, RCDATA gesagt...
const
NAMES : array [0..2] of string = ('BigSnow', 'NormalSnow', 'SmallSnow'); MfG xZise [edit]Mist :( Irgendwas ist das schiefgegangen?
|
Re: PNG auf Paintbox zeichnen
Liste der Anhänge anzeigen (Anzahl: 1)
:coder2:
|
Re: PNG auf Paintbox zeichnen
Hmm bei dir funktioniert es wunderbar, aber bei mir irgendwie nicht :(
Selbst wenn die Bufferbitmaps vom Typus "TBitmap32" sind, was sie ja nicht sein müsste, da da ja keine Transparenz ist :( MfG xZise [edit]Oh man ^^ Ich habs: So war es vorher:
Delphi-Quellcode:
Und dannach, also dass es funzt:
procedure TSnow.DrawTo(const ABitmap : TBitmap32);
begin FBitmap.DrawTo(ABitmap.Canvas.Handle, FLeft, FTop); end;
Delphi-Quellcode:
procedure TSnow.DrawTo(const ABitmap : TBitmap32);
begin FBitmap.DrawTo(ABitmap, FLeft, FTop); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 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 by Thomas Breitkreuz