ciao giovanni, io utilizzerei la funzione imagecopymerge() che permette di scegliere l'opacità nel caso ti serva.
Per quanto riguarda l'header devi eliminare il codice html iniziale altrimenti la funzione heafer() non andrà a buon fine.