Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi TPNGImage - Alphachannel in Bitmap anzeigen (https://www.delphipraxis.net/67945-tpngimage-alphachannel-bitmap-anzeigen.html)

OregonGhost 18. Jan 2008 13:40

Re: TPNGImage - Alphachannel in Bitmap anzeigen
 
Das Bild ist doch absolut korrekt. Ein Alphakanal ist 1 (bzw. 255) für sichtbar und 0 für unsichtbar. Wenn du den Wert direkt als Helligkeit verwendest, hast du also weiß für sichtbar und schwarz für unsichtbar. Und genau das zeigt dein Bild doch.

Muetze1 18. Jan 2008 14:03

Re: TPNGImage - Alphachannel in Bitmap anzeigen
 
Zitat:

Zitat von Spes
Gibt es (mitterlweile) irgendeine native oder elegantere Möglichkeit PNGs samt Transparenz auf VCL-Komponenten abzubilden?

Delphi-Quellcode:
  VCLComponentenCanvas.Draw(0, 0, DeinPiNGImage);
Oder was?

Spes 18. Jan 2008 17:00

Re: TPNGImage - Alphachannel in Bitmap anzeigen
 
Hi ihr beiden,

vielen Dank für die Hinweise. Vielleicht verstehe ich die Alphatransparenz noch nicht so ganz.
Ich habe mittlerweile folgendes - komplexeres - Bild (der Hintergrund ist eigentlich transparent; das Pink dient hier nur der Veranschaulichung):
http://www.andreaswortmann.de/temp/test3.png
Die Transparenz bei PNGs erlaubt mir doch eigentlich für jedes Pixel anzugeben, wie transparent dieses sein soll (eben von 0 (garnicht) bis 255 (vollständig transparent)). Dieses benötige ich um 'weiche' Ränder entlang der Grafik zu erhalten.

Binde ich die Grafik jetzt wie folgt ein:
Code:
PNG := TPNGObject . Create ;
PNG . LoadFromFile ( 'test3.png' ) ;
Image . Canvas . Draw ( 0 , 0 , PNG ) ;
wird der Hintergrund nicht transparent, sondern weiß.

Geht das überhaupt, oder kann ich nur diese binäre ja/nein Transparenz verwenden?

Entschuldigt bitte, falls ich mich unverständlich ausgedrückt habe. Ich stehe da seid zwei Tagen total auf dem Schlauch.

Danke im Voraus,
Spes

Spes 18. Jan 2008 20:07

Re: TPNGImage - Alphachannel in Bitmap anzeigen
 
Hi nochmal,

dank der von SirThornberry in diesem Thread geposteten Lösung, hat sich mein Problem erledigt.

Vielen Dank für eure Hinweise.

Muetze1 18. Jan 2008 20:29

Re: TPNGImage - Alphachannel in Bitmap anzeigen
 
Zitat:

Zitat von Spes
Binde ich die Grafik jetzt wie folgt ein:
Code:
PNG := TPNGObject . Create ;
PNG . LoadFromFile ( 'test3.png' ) ;
Image . Canvas . Draw ( 0 , 0 , PNG ) ;
wird der Hintergrund nicht transparent, sondern weiß.

Logisch. Du malst das PiNG Image auf ein Bitmap und das hat grundsätzlich erstmal einen weißen Hintergrund. Bereite das Bitmap auf das du zeichnest entsprechend vor, damit dann die PiNG Transparenz beim zeichnen dort eingerechnet wird.

Zitat:

Zitat von Spes
dank der von SirThornberry in diesem Thread geposteten Lösung, hat sich mein Problem erledigt.

Dort wird nichts anderes gemacht, als das PiNG direkt im Image zu belassen. Aber das wäre genau das gleiche als wenn du dir das Image auf die Form packst und über den Objektinspektor das PiNG Image lädst. Oder du benutzt das LoadFromFile() von TPicture, welches dann auch die passende GraphicInstanz suchen & instanziieren sollte.

Spes 19. Jan 2008 19:49

Re: TPNGImage - Alphachannel in Bitmap anzeigen
 
Zitat:

Zitat von Muetze1
Bereite das Bitmap auf das du zeichnest entsprechend vor

Wie meinst du das?

Muetze1 19. Jan 2008 20:16

Re: TPNGImage - Alphachannel in Bitmap anzeigen
 
Na bringe den von dir gewünschten Hintergrund auf das Bitmap, weil anscheinend gefällt dir der weiße Bitmap-Standard-Hintergrund nicht.


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