Возникла потребность сменить ориентацию у 5 гигабайт фотографий с тканями. Так как понятия «небо» и «земля» в этом случае отсутствуют, написал скрипт на PHP, который анализирует ширину и высоту всех изображений в папке, и в случае портретной ориентации, происходит поворот изображения на 90 градусов.
В корне сайта создадим файлик с таким содержимым:
<?php
$pathto = getcwd(); // узнаём текущую директорию файла
$dir = $pathto . 'путь к папке с файлами'; // от корня сайта
$f = scandir($dir); // получаем все файлы в папке
foreach ($f as $file){
if(preg_match('/\.(jpg)/', $file)) // проверяем расширение на JPG
{
$filename = $dir.$file; // формируем полный путь к изображению
$size = getimagesize($filename); // получаем размеры изображения
$width = $size[0]; // записываем значение ширины в переменную
$height = $size[1]; // записываем значение высоты в переменную
if ($height > $width) { // проверяем изображение на портретную ориентацию
$img = imagecreatefromjpeg($filename); // создадим новое изображение
$new_image = $dir.'/rotated/'.$file; // укажем название для будущего файла и его расположение
$imgRotated = imagerotate($img, 90, 0); // повернём изображение на 90 градусов
imagejpeg($imgRotated, $new_image, 90); // сохраним изображение
}
}
}
?>
Всё.
P.S. У меня подвисал скрипт, даже писал 504 Bad Gateway Timeout, но все изображения в итоге перевернул.