При формировании изображений использовать функции рисования, поддерживающие прозрачность.
Например, при рисовании использовать прозрачный цвет, задать который можно функцией
imagecolorallocatealpha().
А при наложении изображений друг на друга использовать функцию imagecopymerge(), последний параметр которой определяет прозрачность накладываемого изображения.