Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Canvas mit Alphakanal in Delphi 5 (https://www.delphipraxis.net/152424-canvas-mit-alphakanal-delphi-5-a.html)

Bernhard Geyer 22. Jun 2010 16:19

AW: Canvas mit Alphakanal in Delphi 5
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1030887)
Das Problem ist das öffentliche Verbreiten. Siehe dazu hier

Ist es eigentlich nicht. Hier ist Codegear anmaßend.

Auszug aus der ursprünglichen Lizenz:
Zitat:

This component may be distributed freely over the internet only when containing the exact same files from the original packaging.

RSE 22. Jun 2010 16:21

AW: Canvas mit Alphakanal in Delphi 5
 
Ich möchte das mal zusammenfassen:

TPNGImage ist als Komponente verfügbar, die in einer alten Version auch unter Delphi 5 lauffähig ist. Sie ist aber auch in neueren Versionen noch, speziell im Bereich Transparenz, verbuggt. -> würd ich somit nicht unbedingt bevorzugen

LMDTools könnte da auch was bieten. Wir setzen auch LMDTools ein, sicherlich eine alte Version, die würde sich bestimmt nicht mit der neuen vertragen. Wenn es die angesprochene Lösung also in unserer alten Version nicht gibt, fällt das auch weg.

Ich werde den beiden Ansätzen morgen mal nachgehen. Um das aber noch mal ausdrücklich zur Sprache zu bringen: Ich brauche kein PNG, sondern lediglich einen Grafikpuffer (bevorzugt ein Canvas) mit Alphakanal, den ich zum Schluss mit Transparenz-Kanal auf mein Ziel-Canvas kopieren kann.


Schönen Feierabend!

Bernhard Geyer 22. Jun 2010 16:24

AW: Canvas mit Alphakanal in Delphi 5
 
Zitat:

Zitat von RSE (Beitrag 1030893)
LMDTools könnte da auch was bieten. Wir setzen auch LMDTools ein, sicherlich eine alte Version, die würde sich bestimmt nicht mit der neuen vertragen. Wenn es die angesprochene Lösung also in unserer alten Version nicht gibt, fällt das auch weg.

Mann kann versuchen (wenn man Lizenz für neue LMD-Kompos hat) das PNG-Image wieder unter D5 lauffähig zu machen.

Namenloser 22. Jun 2010 16:25

AW: Canvas mit Alphakanal in Delphi 5
 
Zitat:

Zitat von RSE (Beitrag 1030893)
Ich werde den beiden Ansätzen morgen mal nachgehen. Um das aber noch mal ausdrücklich zur Sprache zu bringen: Ich brauche kein PNG, sondern lediglich einen Grafikpuffer (bevorzugt ein Canvas) mit Alphakanal, den ich zum Schluss mit Transparenz-Kanal auf mein Ziel-Canvas kopieren kann.

Wie gesagt, Graphics32. Ist genau das.

SirThornberry 22. Jun 2010 20:50

AW: Canvas mit Alphakanal in Delphi 5
 
Was hat das ganze eigentlich mit dem Alphakanal von TCanvas zu tun? Auch durch TPNGImage wird sich da nichts ändern. TCanvas ist zu vergleichen mit einem Blatt Papier. Da gibt es keine halbtransparenten Farben. Was drauf gemalt ist, ist draufgemalt und kann nur übermalt werden.
Was genau ist denn dein Ziel? Text den du auf einen Hintergrund mit FarbeX geschreiben hast dort runter zu nehmen und dann auf einen bunten Hintergrund schreiben wobei der Farbeeinfluss von FarbeX gleich 0 sein soll?
Der richtige weg wäre hier wohl einfach den Hintergrund wo die Schrift später drauf soll auf dein Canvas zu kopieren bevor du darauf schreibst. Und anschließend kannst du das ganze komplett (also mit Schrift) zurück kopieren.

RSE 23. Jun 2010 07:40

AW: Canvas mit Alphakanal in Delphi 5
 
Zitat:

Zitat von SirThornberry (Beitrag 1030917)
Der richtige weg wäre hier wohl einfach den Hintergrund wo die Schrift später drauf soll auf dein Canvas zu kopieren bevor du darauf schreibst. Und anschließend kannst du das ganze komplett (also mit Schrift) zurück kopieren.

Das ist der einfache Weg, auf den ich nicht gekommen bin. Klingt im ersten Moment super. Im zweiten Moment fällt mir allerdings ein, dass ich gelegentlich schon gezeichnete Schrift noch mal verschieben muss auf meinem Canvas... da bräucht ich dann doch wieder Transparenz. Die Position der Schrift ist bei ihrem Zeichnen noch nicht 100%ig.

Ich werde mir als erste Amtshandlung mal Graphics32 ansehen.

[edit]Wenn ich davon ausgehe, dass TBitmap32.RenderText die Position und Dimensionen der Schrift nicht anders berechnet als die Win32-API-Funktion DrawText, dann ist das durchaus nutzbar für meine Zwecke. Die Frage ist allerdings, wie bekomme ich das Ganze zum Schluss zurück auf mein Canvas? Meine momentan einzige Idee wäre:

-zweites Bitmap32 instanzieren
-Hintergrund vom Canvas in das zweite Bitmap32 laden
-erstes Bitmap32 transparent drüberzeichnen
-Canvas vom zweiten Bitmap32 zurück auf Canvas kopieren

Sehe ich das richtig?[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:17 Uhr.
Seite 2 von 2     12   

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