Top.Mail.Ru
Ответы

Как сжать 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 уже являются сжатыми форматами. Тот код, который у вас приведен, теоретически может быть использован в качестве заготовки для *конвертирования* из одного формата в другой, но никак не для сжатия. (либо термин "сжатие" у вас означает что-то особенное, не из общепринятых понятий).