Черная область неизбежна при вращении - PHP (и GD в этом отношении) не заполняет контент в Photoshop и не создаст для вас больше изображения во время вращения, чтобы скрыть черные биты.
У вас есть два варианта:
немного подсчитаем и выясним, какой размер прямоугольника вы можете вырезать из повернутого изображения, чтобы убрать черные границы (например: изображение после поворота будет меньше исходного)
взорвать исходное изображение перед поворотом, так что после вращения вы можете вырезать прямоугольный фрагмент, который соответствует исходному не повернутому размеру. Опять же, требует немного математики.
Конечно, все зависит от того, как вы поворачиваете изображение. Поворот в углу приведет к совершенно иным результатам, чем поворот в центре изображения.