Hm. Wäre mir neu; die NATO-Namensschilder werden mit gd erstellt und da kann ich problemlos ein Bild in ein anderes einfügen und dann Text daneben setzen. Alphatransparenz ist kein Problem; die Karte hatte einmal sogar eine halbtransparente Ebene über dem normalen Kram.
Ich vermute mal, daß du die falschen Funktionen benutzt (beispielsweise imagecreate() statt imagecreatetruecolor()) oder nach JPEG speicherst (ich weiß nicht, wie heftig PHP da komprimiert). Oder nach GIF, aber warum sollte jemand das tun?
TrueColor-Bilder, die als PNG gespeichert werden, sollten absolute Qualität heben. Und jetzt mal ehrlich: Wer würde für Bedien-/Informationselemente auf seiner Website was anderes als PNG verwenden? GIF meist ist auch nicht kleiner und unterstützt nur eine 8bittige Palette pro Bild und 1bittige Transparenz. JPEG ist nur in hohen Qualitätsstufen sinnvoll und kann gar keine Transparenz. SVG wird nicht überall unterstützt. Was hochqualitative Bilder mit brauchbar aussehenden Kanten angeht ist PNG momentan das einzig plausible Format.