Forum: Object-Pascal / Delphi-Language
by Thom,
11. Feb 2011
Sind hier nur Skeptiker unterwegs!? :wink:
Im Bitmap kann die Farbtiefe über die Eigenschaft PixelFormat eingestellt werden. pf1bit erzeugt zum Beispiel ein Schwarz-Weiß-Bild. In einem Byte sind also (Windows-)intern (!!!) 8 nebeneinanderliegende Pixel enthalten. Kannst Du gern über ScanLine überprüfen. Wenn Du da mit der 32-Bit-TColor-Keule draufhauen würdest, würdest du dem Tapferen...
Forum: Object-Pascal / Delphi-Language
by Thom,
10. Feb 2011
Keine Ursache - gern geschehen! :thumb:
P.S.:
Dein Bild wird ja immer besser! 8-)
Gefällt mir!
Forum: Object-Pascal / Delphi-Language
by Thom,
10. Feb 2011
OK - Hier der Versuch mit Geister-Smileys:
Die Transparenz ist gut zu erkennen. Allerdings wird auch sichtbar, daß die Objekte (TImage und TButton) offenbar etwas unterschiedliche Zeichenalgorithmen verwenden, da die Farbsättigung differiert.
P.S.:
@EWeiss: Dein Bild sieht natürlich besser aus! 8-)
Forum: Object-Pascal / Delphi-Language
by Thom,
10. Feb 2011
Ja. Hier der Beweis:
Das rechte obere Smiley ist ein TImage mit dem Original-PNG-Bild. Im FormShow-Event wird dieses Bild in eine normale Image-Liste kopiert (siehe erstes Beispiel). Diese Image-Liste wird vom Button zur Darstellung des Icons genutzt (ohne jeglichen eigenen Quelltext). Das Quadrat unteren ist ein TShape-Objekt, das in seiner rechten oberen Ecke von einer kleinen PaintBox...
Forum: Object-Pascal / Delphi-Language
by Thom,
10. Feb 2011
Ja, TBitmap unterstütz den Alpha-Kanal.
Ich hatte das vor einigen Tage getestet, als ich eigene Marker-Icons für Google Maps erstellen wollte.
Gezeichnet wird dabei in ein TPNGImage, was für sich genommen noch nichts besonderes ist. Erst bei der Erstellung des Schattenbildes wird es interessant:
Dabei wird das PNG-Bild als Maske samt Transparenz in ein Bitmap kopiert, perspektivisch...
Forum: Object-Pascal / Delphi-Language
by Thom,
10. Feb 2011
:gruebel:
Ähm... Worin besteht das Problem?
Wird einem Bitmap ein PNG-Bild zugewiesen, wird automatisch (falls vorhanden) die Transparenz übergeben und das Bitmap hat 32 Bit Farbtiefe (RGBA). Wird das Bitmap jetzt zur Image-Liste hinzugefügt, wird auch dabei die Transparenz berücksichtigt. Einzige Bedingung dabei: TImageList.ColorDepth muß auf cd32Bit stehen.
procedure...