AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia D2010: transparentes PNG ausgeben

D2010: transparentes PNG ausgeben

Ein Thema von hoika · begonnen am 2. Jul 2010 · letzter Beitrag vom 2. Jul 2010
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.269 Beiträge
 
Delphi 10.4 Sydney
 
#1

D2010: transparentes PNG ausgeben

  Alt 2. Jul 2010, 11:39
Hallo #,

seit Stunden probiere ich hier rum ;(

Ich möchte eine transparentes PNG ausgeben.
Delphi-Quellcode:
Bitmap: TBitmap;

  Bitmap.PixelFormat:= pf32bit;
  Bitmap.LoadFromFile('XXX');

  theCanvas.Draw(0, 0, Bitmap); // theCanvas: TCanvas

  // oder
  theCanvas.Draw(0, 0, PngImage); // theCanvas: TCanvas
Das Problem ist, dass der transparente Teil immer schwarz ist.
Auch SetBkMode oder die Nutzung von TPngImage zeigt mir das immer schwarz an.

Das Problem ist bekannt (google alte Threads)

Was mache ich verkehrt ?


Heiko
Heiko

Geändert von hoika ( 2. Jul 2010 um 11:42 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: D2010: transparentes PNG ausgeben

  Alt 2. Jul 2010, 11:41
Hast du es schon mal mit einer speziellen PNG-Kompo versucht? Es scheint so, als die Transparenzinformationen beim Laden in ein Bitmap verloren geht
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.269 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: D2010: transparentes PNG ausgeben

  Alt 2. Jul 2010, 11:43
Hallo,

habe es gerade bold gemacht.

D2010 hat ja jetzt ein TPngImage (genauer ab 2009 ist es drin).

Aber ich Dussel hatte es aus meiner Spezial-Komponente an ein Bitmap übergeben
und von da an das PngImage.
Jetzt zeigt er es an, aber zu groß ;(

OK, GDI+ ist dein Freund.


Heiko
Heiko

Geändert von hoika ( 2. Jul 2010 um 11:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: D2010: transparentes PNG ausgeben

  Alt 2. Jul 2010, 11:53
Delphi-Quellcode:
   Canvas.Brush.Style := bsClear;
   Canvas.Draw(0,0,image1.Picture.Graphic);
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von mkinzler ( 2. Jul 2010 um 11:56 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.269 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: D2010: transparentes PNG ausgeben

  Alt 2. Jul 2010, 12:36
Hallo,

mit bsClear klappt es auch nicht.

Das Problem liegt wirklich darin, dass das Image ein PngImage sein muss.

Meine Bilder liegen in einer DB und werden als Stream in die Anwendung geladen

Ein PngImage.LoadFromStream meldet "ungültiges Format"

Mach ich aber ein

Stream.WriteToFile('XXX.PNG';
PngImage.ReadFromFile('XXX.PNG';

klappt alles.


Mensch ! Mensch ! ;(


Aber das kann ich so lösen.


Danke an alle.


Heiko
Heiko
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:19 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