Пытаюсь сделать thumbnail (миниатюру) PHP, загрузил фото, из эту фотку скопировал добавив в название слово thumbnail, теперь надо уменщить размер этой фотографии, прочитал кучу статей, там только сложный вариант, в котором много кода, хотелось бы код был меньше, попробовал библиотеки, классы, но там большинство не сохраняет изображение, а только уменьшает, типа как временно. Сам файл остается большим. Попробовал imagescale, но он кажись работает только tmp файлом. Помогите пожалуйста.
Чтобы изменить размер изображения в PHP, можно использовать функции из библиотеки GD. Вот пример кода, который позволяет изменить размер изображения:
php
Copy code
// указываем путь к файлу изображения
$img_path = 'path/to/image.jpg';
// задаем желаемые размеры
$new_width = 400;
$new_height = 300;
// получаем информацию об изображении
list($width, $height) = getimagesize($img_path);
// создаем изображение на основе исходного файла
$src_img = imagecreatefromjpeg($img_path);
// создаем пустое изображение нужного размера
$new_img = imagecreatetruecolor($new_width, $new_height);
// изменяем размер изображения
imagecopyresized($new_img, $src_img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// сохраняем измененное изображение
imagejpeg($new_img, 'path/to/new_image.jpg'
В этом примере мы указываем путь к исходному файлу изображения, затем задаем новые размеры, создаем изображение на основе исходного файла и изменяем его размеры с помощью функции imagecopyresized(). В конце сохраняем измененное изображение.
Вы можете использовать библиотеку ImageMagick в PHP для изменения размера изображения. Вот пример кода:
```
// путь к файлу
$imagePath = 'path/to/image.jpg';
// создаем объект ImageMagick
$image = new Imagick($imagePath);
// устанавливаем новый размер
$image->resizeImage(300, 200, Imagick::FILTER_LANCZOS, 1);
// сохраняем изменения
$image->writeImage('path/to/thumbnail.jpg'
```
Обратите внимание, что вы должны установить библиотеку ImageMagick на ваш сервер и настроить ее для PHP. Также вы можете использовать другие параметры для изменения размера изображения, например, `cropThumbnailImage()` для обрезки и масштабирования изображения до указанного размера.
// создаем новое изображение для миниатюры
$thumbnailImage = imagecreatetruecolor($thumbnailWidth, $thumbnailHeight);
// копируем изображение с изменением размера
imagecopyresampled($thumbnailImage, $sourceImage, 0, 0, 0, 0, $thumbnailWidth, $thumbnailHeight, $sourceWidth, $sourceHeight);
// сохраняем миниатюру в файл
imagejpeg($thumbnailImage, $thumbnail, 80);
// очищаем память
imagedestroy($sourceImage);
imagedestroy($thumbnailImage);
```
Код создает миниатюру из исходного изображения с ограничением максимальной ширины и высоты. Миниатюра сохраняется в файл с заданным именем и качеством сжатия 80.