За последние 24 часа нас посетил 22771 программист и 1246 роботов. Сейчас ищут 735 программистов ...

Сжатие и обрезание изображения перед загрузкой

Тема в разделе "Обработка изображений средствами PHP", создана пользователем Davides, 25 апр 2020.

  1. Davides

    Davides Новичок

    С нами с:
    25 апр 2020
    Сообщения:
    14
    Симпатии:
    0
    Здравствуйте. Имеется такой вот код, который загружает изображения на сервер.

    PHP:
    1. <?php
    2. // Все загруженные файлы помещаются в эту папку
    3. $uploaddir = '../img/';
    4.  
    5. // Вытаскиваем необходимые данные
    6. $file = $_POST['value'];
    7. $name = $_POST['name'];
    8.  
    9. // Получаем расширение файла
    10. $getMime = explode('.', $name);
    11. $mime = end($getMime);
    12.  
    13. // Выделим данные
    14. $data = explode(',', $file);
    15.  
    16. // Декодируем данные, закодированные алгоритмом MIME base64
    17. $encodedData = str_replace(' ','+',$data[1]);
    18. $decodedData = base64_decode($encodedData);
    19.  
    20. // Вы можете использовать данное имя файла, или создать произвольное имя.
    21. // Мы будем создавать произвольное имя!
    22. $randomName = substr_replace(sha1(microtime(true)), '', 12).'.'.$mime;
    23.  
    24. // Создаем изображение на сервере
    25. if(file_put_contents($uploaddir.$randomName, $decodedData)) {
    26.     // Записываем данные изображения в БД
    27.     echo $randomName.":загружен успешно";
    28. }
    29. else {
    30.     // Показать сообщение об ошибке, если что-то пойдет не так.
    31.     echo "Что-то пошло не так. Убедитесь, что файл не поврежден!";
    32. }
    33. ?>
    Как можно модернизировать данный код, чтобы перед загрузкой изображение сжималось и обрезалось до определенных размеров?
    Заранее спасибо.
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    написать код, а не скопировать с интернета.
     
  3. Davides

    Davides Новичок

    С нами с:
    25 апр 2020
    Сообщения:
    14
    Симпатии:
    0
    Есть такая функция изменения размера картинок:
    PHP:
    1. function imageresize($outfile,$infile,$neww,$newh,$quality) {
    2.  
    3.     $im=imagecreatefromjpeg($infile);
    4.     $im1=imagecreatetruecolor($neww,$newh);
    5.     imagecopyresampled($im1,$im,0,0,0,0,$neww,$newh,imagesx($im),imagesy($im));
    6.  
    7.     imagejpeg($im1,$outfile,$quality);
    8.     imagedestroy($im);
    9.     imagedestroy($im1);
    10.     }
    11.  
    12. imageresize("","webcam.jpg",320,240,75);
    Но не хватает знаний правильно вставить в этот код, чтобы работало.
    Пытался, но либо не загружает вообще, либо загружает пустой файл.
    --- Добавлено ---
    Как все просто оказывается
     
  4. RainBowDash

    RainBowDash Активный пользователь

    С нами с:
    22 июл 2013
    Сообщения:
    220
    Симпатии:
    8
    Ну так может стоит правильно передать в функцию всю необходимую информацию, а там глядишь и что то начнет делать.
    Какой общий код получается ?