Hallo..
Habe mal ne ganz blöde Frage:
Seit wann hat ein TBitmap Transparenz?
Meines Wissens wird eine Transparenz erst vom TImage erzeugt,indem es eine definierte Farbe (zumeist aus der Ecke des Bitmaps) bei der Visualisierung transparent darstellt, aber mit ist nicht bekannt, das TBitmap überhaupt eine Transparenz hat.
Wenn Du Transparenz nutzen willst, musste wohl ein Image-Format wählen, welches das kann, wie z.B. GIF oder PNG..
..
Ein Icon hat Transparenz und beim Assign zu einem TBitmap wird hier eine Füllfarbe verwendet, da TBitmap keins hat, in deinem Beispiel schwarz!
Ein 32-Bit-Bitmap hat neben den
RGB-Pixeln einen Alpha-Kanal (das A-Pixel), wo man einen Transparenzwert drin speichern kann. Allerdings können nicht alle Programme mit dem 32-Bit-Bitmap so richtig umgehen.
Der "Trick" mit der Ecke des Bitmaps (i.d.R. Bitmaps mit 24-Bit oder weniger) wird (z.B. auch in Delphi) verwendet, um eine bestimmte Farbe transparent erscheinen zu lassen. Damit kann man aber z.B. keine transparenten Verläufe darstellen, sondern nur eben eine Farbe transparent schalten.
OK, dann kann die procedure Scale_Bitmap(var Bitmap: TBitmap; DestWidth, DestHeight: Integer);
u.a. von Helmi nur dann funktionieren, wenn
A) das QuellBitmap 32Bit hat
B) Temp_Bitmap entweder ebenfalls nach dem create auf 32bit gesetzt wird oder von Delphi direkt auf 32bit gesetzt ist..
Wenn ich mich recht entsinne macht Delphi als default nen 24bit, da u.a. ältere Delphi-Versionen mit 32bit garnicht umgehen konnten..