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($src, 0,0,0,127);
$src = imagerotate($src, 45, $trans, 0);
$rotated = imagecreatetruecolor(imagesx($src), imagesy($src));
imagealphablending($rotated, false);
imagesavealpha($rotated, true);
imagecopy($rotated, $src, 0, 0, 0, 0, imagesx($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'.