Код:
c := TPngObject.Create;
a := TPngObject.Create;
b := TPngObject.Create;
a.LoadFromFile('tex/grass.png');
b.LoadFromFile('tex/player.png');
c.Assign(a);
b.Draw(c.Canvas,Rect(0,0,b.Width,b.Height));
c.SaveToFile('result.png');
Работает, только что потестил, прозрачность учитывается.