AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Canvas mit Alphakanal in Delphi 5
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas mit Alphakanal in Delphi 5

Offene Frage von "RSE"
Ein Thema von RSE · begonnen am 22. Jun 2010 · letzter Beitrag vom 23. Jun 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Canvas mit Alphakanal in Delphi 5

  Alt 22. Jun 2010, 16:19
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
RSE

Registriert seit: 26. Mär 2010
254 Beiträge
 
Delphi XE Enterprise
 
#12

AW: Canvas mit Alphakanal in Delphi 5

  Alt 22. Jun 2010, 16:21
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!
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

AW: Canvas mit Alphakanal in Delphi 5

  Alt 22. Jun 2010, 16:24
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#14

AW: Canvas mit Alphakanal in Delphi 5

  Alt 22. Jun 2010, 16:25
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.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#15

AW: Canvas mit Alphakanal in Delphi 5

  Alt 22. Jun 2010, 20:50
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
RSE

Registriert seit: 26. Mär 2010
254 Beiträge
 
Delphi XE Enterprise
 
#16

AW: Canvas mit Alphakanal in Delphi 5

  Alt 23. Jun 2010, 07:40
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]
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."

Geändert von RSE (23. Jun 2010 um 08:03 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 17:35 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