Das Problem an den "transparenten Ecken" ist wohl, dass diese so auch in dem Grafikprogramm erstellt wurden (Photoshop / GIMP mit Layern). Also scheinbar wurden die Ränder da "künstlich" transparent gemacht. Und wenn du da mit nur
einer Farbe drübermalst, dann hat das erstmal nichts mit dem Alpha-Channel zu tun.
Was du machen müsstest wäre entweder eine Funktion nachzuprogrammieren, wie sie Photoshop mit "Farbe ersetzen" anbietet. Oder was du mal ganz blöd versuchen kannst, wäre das, was man auch beim "Anti Aliasing" macht: Das Bild in eine viel höhere Auflösung hochrechnen, dann "drübermalen", dann wieder runterrechnen (zB mit einem bilinearen oder bikubischen Algorithmus (Google, gibts fertige Delphi-Implementierungen für, glaube auch hier in der
DP) ...).
PS: Vielleicht reicht zum hoch- und runterskalieren auch schon
StretchBlt.