AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia TPngImage: Leeres transparentes Png erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

TPngImage: Leeres transparentes Png erstellen

Ein Thema von Cubysoft · begonnen am 19. Jul 2015 · letzter Beitrag vom 20. Jul 2015
Antwort Antwort
Cubysoft

Registriert seit: 5. Sep 2014
Ort: Ludwigshafen
76 Beiträge
 
Delphi XE8 Professional
 
#1

TPngImage: Leeres transparentes Png erstellen

  Alt 19. Jul 2015, 17:14
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
Tobias
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TPngImage: Leeres transparentes Png erstellen

  Alt 19. Jul 2015, 17:20
Erzeugen evtl. mit CreateBlank
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Cubysoft

Registriert seit: 5. Sep 2014
Ort: Ludwigshafen
76 Beiträge
 
Delphi XE8 Professional
 
#3

AW: TPngImage: Leeres transparentes Png erstellen

  Alt 19. Jul 2015, 17:38
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.
Tobias
  Mit Zitat antworten Zitat
Cubysoft

Registriert seit: 5. Sep 2014
Ort: Ludwigshafen
76 Beiträge
 
Delphi XE8 Professional
 
#4

AW: TPngImage: Leeres transparentes Png erstellen

  Alt 20. Jul 2015, 15:03
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
Tobias
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 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