...
WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Сжатие изображений для веб-сайтов с помощью reSmush.it на PHP

236

Опубликовано в PHP

Изображения делают ваш сайт красивым и делают его удобнее для посетителей. Однако изображения также могут повлиять на производительность сайта и сделать его безумно медленным. И все мы знаем, что более медленные веб-сайты не могут добиться успеха в Интернете.

В этой статье мы покажем вам, как сжимать изображения для веб-сайтов с помощью reSmush.it на PHP. Используя эту услугу, пользователи могут уменьшить размер изображений на своих веб-сайтах. Это поможет повысить скорость страницы. ReSmush.it – ​​это бесплатный инструмент для сжатия изображений. Пользователь может сжать столько изображений, сколько пожелает. Такого ограничения на количество изображений нет.

На момент написания этой статьи reSmush.it сжал более 7 миллиардов изображений, и их количество продолжает расти. Это число говорит о том, что услуга достаточно популярна среди пользователей.

Начиная

Создадим простую форму, в которую пользователь может загрузить изображение. После отправки изображения с помощью PHP мы отправим изображение в сервисы reSmush.it и получим оптимизированную версию нашего изображения.

<form method="post" enctype="multipart/form-data">
    <p><input type="file" name="image" accept="image/*" /></p>
    <input type="submit" name="submit" value="Submit">
</form>

Здесь мы добавили кнопку ввода и отправки файла. Мы также использовали атрибут, accept="image/*"который позволяет выбирать только файлы изображений.

Сжатие изображений для веб-сайта в PHP

Теперь нам нужно взаимодействовать с API reSmush.it. Мы собираемся написать код, который выполняет следующие шаги.

  • Загрузите изображение на наш сервер.
  • Отправьте загруженное изображение в конечную точку API reSmush.it.
  • Получает путь оптимизированного изображения.
  • Сохраните эту оптимизированную версию на нашем сервере, заменив исходное изображение.

Прежде чем продолжить, убедитесь, что на вашем сервере включено расширение cURL.

<?php
if (isset($_POST['submit'])) {
  
    //allowed file types
    $arr_file_types = ['image/png', 'image/gif', 'image/jpg', 'image/jpeg'];
  
    if (!(in_array($_FILES['image']['type'], $arr_file_types))) {
  
        die('Only image is allowed!');
    }
  
    if (!file_exists('uploads')) {
        mkdir('uploads', 0777);
    }
  
    move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/'. $_FILES['image']['name']);
  
    // optimize image using reSmush.it
    $file = getcwd(). '/uploads/'. $_FILES['image']['name'];
    $mime = mime_content_type($file);
    $info = pathinfo($file);
    $name = $info['basename'];
    $output = new CURLFile($file, $mime, $name);
    $data = array(
        "files" => $output,
    );
  
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://api.resmush.it/?qlty=80');
    curl_setopt($ch, CURLOPT_POST,1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $result = curl_exec($ch);
    if (curl_errno($ch)) {
       $result = curl_error($ch);
    }
    curl_close ($ch);
  
    $arr_result = json_decode($result);
  
    // store the optimized version of the image
    $ch = curl_init($arr_result->dest);
    $fp = fopen(getcwd(). '/uploads/'. $name, 'wb');
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_exec($ch);
    curl_close($ch);
    fclose($fp);
  
    echo "File uploaded successfully.";
}
?>

В приведенном выше коде я установил рекомендуемое значение качества «80». Вы можете изменить это число на большее или меньшее. Мы храним изображения внутри uploadsкаталога. В вашем случае вы можете настроить этот каталог.

Надеюсь, вы понимаете, как сжимать изображения для веб-сайта на PHP с помощью reSmush.it. Я хотел бы услышать ваши мысли и предложения в разделе комментариев ниже.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее