Небольшая функция, для поворота картинки на любой заданный угол.
Функция принимает и обрабатывает картинку любого формата, которые поддерживаются стандартными функциями php.
Тут все понятно, поэтому просто приведу код с подробными комментариями:
/*
* Поворот картинки на заданный угол
*
* $img - путь к картинке
* $degree - угол поворота
* $path - путь для сохранения картинки
* $formatImg - расширение картинки, для сохранения.
*/
function rotatePhoto($img, $degree, $path, $formatImg = 'jpeg'){
// получаем данные о картинке
$size = getimagesize($img);
//определяем тип (расширение) картинки
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom" . $format; //определение функции для расшерения файла
//если нет такой функции, то прекращаем работу скрипта
if (!function_exists($icfunc)) return false;
// Загрузка изображения
$source = $icfunc($img);
// Поворот. Пустые углы заливаем цветом 0xffffff
$rotate = imagerotate($source, $degree, '0xffffff');
// сохраняем картинку
$func = 'image'.$formatImg;
$func($rotate, $path, 100);
// очищаем пямять
imagedestroy($rotate);
// возвращаем путь к новой картинке
return $path;
}
