Как сжать png, jpeg из $_FILES в php?
В идеале сжимать в webp, но можно и в jpg,
Функция для загрузки файла, (в $avatar хранится элемент из $_FILES)
123456789
function setAvatar($avatar)
{
if ($avatar['type'] == 'image/jpeg' || $avatar['type'] == 'image/png') {
if ($avatar['size'] <= 1000000) {
move_uploaded_file($avatar['tmp_name'], "$_SERVER[DOCUMENT_ROOT]/media/avatar/$this->id.jpg");
return true;
}
}
}
Задал вопрос gpt, получил что то сложное и непонятное, буду крайне благодарен если кто то действительно постарается помочь :)
По дате
По Рейтингу
1234567891011121314151617181920212223
<?php
// файл и новый размер
$filename = 'test.jpg';
$percent = 0.5;
// тип содержимого
header('Content-Type: image/jpeg');
// получение нового размера
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// загрузка
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
// изменение размера
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// вывод
imagejpeg($thumb);
?>
Вопрос некорректен, jpeg png уже являются сжатыми форматами. Тот код, который у вас приведен, теоретически может быть использован в качестве заготовки для *конвертирования* из одного формата в другой, но никак не для сжатия. (либо термин "сжатие" у вас означает что-то особенное, не из общепринятых понятий).
Больше по теме