In pratica devi ruotare l'immagine, crearne una nuova trasparente con le stesse dimensioni, e poi salvare il canale alpha sulla nuova in modalita' non blending. Dopodiche' basta copiare l'immagine originale ruotata sulla nuova.

con altre parole:
Codice PHP:
$src imagecreatefrompng('blabla.png');
$trans imagecolorallocatealpha($src0,0,0,127);
$src =  imagerotate($src45$trans0);
$rotated imagecreatetruecolor(imagesx($src), imagesy($src));
imagealphablending($rotatedfalse);
imagesavealpha($rotatedtrue);
imagecopy($rotated$src0000imagesx($src), imagesy($src));

header('Content-type: image/png');
imagepng($rotated); 
Attenzione, tutto questo vale per le png, mentre per le gif indicizzate funziona diversamente, devi fare alcuni passaggi in piu'.