+7(982) 597-7179

Функция конвертирования изображений в WEBP формат на PHP

Время на прочтение: 2 мин.

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

imgtowebp

Конвертация изображений в формат WEBP является важным шагом для оптимизации веб-страниц и улучшения производительности. Формат WEBP был разработан компанией Google и предлагает более эффективное сжатие без потери качества изображения. В этой статье мы рассмотрим, как произвести конвертацию изображений в формат WEBP с помощью PHP.

PHP предлагает несколько подходов для конвертации изображений, однако одним из наиболее популярных является использование библиотеки Imagick. Imagick — это обертка над библиотекой ImageMagick, которая предоставляет широкий спектр функций для обработки и манипуляции изображениями.

Для начала, убедитесь, что расширение Imagick установлено на вашем сервере PHP:

if (!extension_loaded('imagick')){
    echo 'imagick не установлен';
}else{
    echo 'imagick установлен';
}

Если он не установлен, вы можете установить его через менеджер расширений PHP или с помощью команды в терминале:

sudo apt-get install php-imagick

После установки расширения Imagick, мы можем написать функцию для конвертации изображений в формат WEBP:

function convertToWebp($inputImagePath, $outputImagePath, $quality = 80) {
    
        // Создаем новый объект Imagick
        $imagick = new \Imagick($inputImagePath);

        // Устанавливаем формат вывода WEBP
        $imagick->setImageFormat('WEBP');

        // Устанавливаем качество изображения (от 0 до 100)
        $imagick->setImageCompressionQuality($quality);

        // Сохраняем сконвертированное изображение в указанный путь
        $imagick->writeImage($outputImagePath);

        // Очищаем память
        $imagick->clear();
        $imagick->destroy();
        
}

В этой функции мы принимаем три параметра:

  • путь к исходному изображению ($inputImagePath);
  • путь для сохранения сконвертированного изображения ($outputImagePath);
  • качество изображения ($quality) по умолчанию равно 80.

Пример вызова функции:

const SITE_ROOT = __DIR__;
$inputImagePath = SITE_ROOT.'/1.jpg';
$outputImagePath = SITE_ROOT.'/1.webp';
$quality = 80;

 convertToWebp($inputImagePath, $outputImagePath, $quality);

В этом примере мы конвертируем изображение ‘1.jpg’ в формат WEBP и сохраняем результирующее изображение в файл ‘1.webp’.

Однако, помимо конвертации изображений в формат WebP, необходимо также поддерживать возможность отображения старых форматов изображений (например, JPEG и PNG), чтобы обеспечить совместимость с браузерами, которые не поддерживают WebP. Для этого рекомендуется использовать атрибут srcset в HTML, чтобы определить возможности браузера и выбрать наиболее подходящий формат изображения.

 <picture>
    <source type="image/webp" srcset="1.webp">
    <img src="1.jpg" alt="Изображение">
</picture>

Конвертация изображений в формат WebP — это всего лишь один из множества способов оптимизации изображений для веб-страниц. Важно помнить, что каждая ситуация требует индивидуального подхода, и лучшей практикой является анализ и оптимизация каждого изображения в соответствии с его требованиями и контекстом использования.


Читайте также:

Приглашаем поучаствовать в обсуждении статьи:

Комментариев 0