Hola, te paso el script que utilizo para los png con fondo transparente.
Código PHP:
$tmp=imagecreatetruecolor($nuevo_ancho,$nuevo_alto);
$src=imagecreatefrompng($myfile["tmp_name"]);
imagealphablending($tmp, false);
imagesavealpha($tmp,true);
$transparent = imagecolorallocatealpha($tmp, 255, 255, 255, 127);
imagefilledrectangle($tmp, 0, 0, $nuevo_ancho, $nuevo_alto, $transparent);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
imagepng($tmp, $destino);
imagedestroy($tmp);
imagedestroy($src);
Tendrás que sustituir los valores del alto y el ancho.
Cualquier duda, postea !!!