@Rolf Frei
Ach ja. Das ist im Eifer des Gefechtes etwas in Vergessenheit geraten. Hab es gerade mal probiert, ändert leider nichts an der Situation, besagte PNG wird mit schwarzem Hintergrund dargestellt :/.
Hier mein Quellcode:
Delphi-Quellcode:
png := TPNGImage.Create;
png.LoadFromFile(Path);
bmp := TBitmap.Create;
bmp.Assign(png); // <-- TPNGImage AssignTo() ist modifiziert. Es fehlen das Brush.Color := 0 sowie das FillRect.
Image3.Picture.Graphic := bmp;
@Redeemer
Dieser Code funktioniert
. So oder so ähnlich hätte ich es natürlich auch gelöst
. Spaß beiseite, vielen Dank!
Dass die Bilder nicht optimal gespeichert sind, hab ich auch schon gemerkt. Wie gesagt, manche sind mir so gegeben, andere sind von mir in Paint.net erstellt, keine Ahnung, warum es da solche Späßchen generiert.
Jetzt hat das Problem einen Workaround. Warum Delphi überhaupt eine Unterscheidung zwischen Partial- und BitTransparency macht, bleibt mir ein Rätsel. Hat das einen entscheidenden Vorteil?
Mein Problem ist jetzt jedenfalls behoben bzw. umgangen. Danke euch.
Habe es jetzt folgendermaßen gelöst (mit der Prozedur von Redeemer):
Delphi-Quellcode:
var
gfx: TPicture;
begin
gfx := TPicture.Create;
gfx.LoadFromFile(Path);
if gfx.Graphic is TPNGImage then
Deindex(gfx.Graphic as TPNGImage);
Image3.Picture.Assign(gfx);
end;