Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   TPngImage: Leeres transparentes Png erstellen (https://www.delphipraxis.net/185931-tpngimage-leeres-transparentes-png-erstellen.html)

Cubysoft 19. Jul 2015 16:14

TPngImage: Leeres transparentes Png erstellen
 
Hallo,

ich habe eine kurze Frage und habe was das angeht leider nicht wirklich etwas gefunden.. Ich möchte während der Programmlaufzeit ein leeres, transparentes TPngImage erzeugen und auf dieses Text und Formen zeichnen. Am Ende soll der transparente Teil (+Text) auf ein anderes TPngImage (mit Hintergrundbild) draufgezeichnet werden (würde ich mit Copyrect machen).

Daraus ergeben sich 2 Fragen:

1. Wie erstelle ich ein leeres TPngImage, welches transparent ist und auf das ich mit .Canvas Texte mit Brush.Style := bsClear zeichnen kann?
2. Bleibt die Transparenz des Hintergrundes beim Übertragen (mit Canvas.CopyRect) erhalten? Wenn nein, wie bekomme ich das dann auf das andere Png?

Danke schonmal für eure Hilfestellung. Leider könnte ich euch Quellcodetechnisch nichts brauchbares zeigen, da dies ja der Startpunkt wäre :)

Bernhard Geyer 19. Jul 2015 16:20

AW: TPngImage: Leeres transparentes Png erstellen
 
Erzeugen evtl. mit CreateBlank

Cubysoft 19. Jul 2015 16:38

AW: TPngImage: Leeres transparentes Png erstellen
 
Ja, die Funktion erkenne ich, ich müsste das ganze ja mit ARGB erzeugen (denk ich mal) aber hab von so Geschichten wie Bittiefe und so keine Ahnung.

Cubysoft 20. Jul 2015 14:03

AW: TPngImage: Leeres transparentes Png erstellen
 
Ok, ich bin am verzweifeln... Ich setze mich jetzt seit Stunden mit GDI+ auseinander, bekomm aber das was ich möchte garnicht hin.. Ich erkläre euch einfach mal ganz genau was das Problem ist.

Wichtig ist nur: Ich suche eine Lösung. Ich muss nicht zwangsweise mit den Delphi-Zeichenmethoden arbeiten, auch nicht mit TPngImage, bin also total frei.. Nur das Prinzip muss funktionieren..

Container=Irgendeine Klasse auf die ich Zeichnen kann, aber nur im Speicher existiert (z.B. TPngImage)

Vorgehensweise schrittweise erklärt:

1. Leeren Container (A) mit transparentem Hintergrund erstellen
2. Auf diesen leeren Container (A) werden Texte und kleine Icons gezeichnet
3. Leerer Container (B) wird erzeugt und auf ihn wird ein Hintergrundbild gezeichnet (solid, ausfüllend) deshalb ist transparenz egal
4. Bild in Container (A) wird auf Container (B) gezeichnet

=> In Container B ist ein Bild mit schönem Hintergrund und Text

Sinn dahinter ist, dass eine Funktion diesen Container B an eine Form übergibt. In der Form wird dieser Container dann in einer TImage-Komponente angezeigt.

Ich hoffe ihr könnt mir helfen.. Ich verzweifle grad wirklich


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:14 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