DANFA

PHP: Как преобразовать изображения PNG, JPEG, GIF и JPG в формат WebP

Полный PHP-код, демонстрирующий, как преобразовать изображения в формате PNG, JPEG, GIF и JPG в формат WebP с помощью стандартной библиотеки GD. Код проверяет тип исходного изображения и выполняет соответствующую операцию для каждого формата:
<?php
// Входной файл
$filePath = 'input.png'; // сюда подставьте путь к файлу

// Проверяем тип файла
switch (exif_imagetype($filePath)) {
    case IMAGETYPE_JPEG:
        $sourceImg = imagecreatefromjpeg($filePath);
        break;
    case IMAGETYPE_PNG:
        $sourceImg = imagecreatefrompng($filePath);
        break;
    case IMAGETYPE_GIF:
        $sourceImg = imagecreatefromgif($filePath);
        break;
    default:
        die('Неподдерживаемый формат изображения.');
}

// Проверяем, поддерживается ли формат WebP
if (!function_exists('imagewebp')) {
    die('Библиотека GD не поддерживает формат WebP.');
}

// Создаем выходной файл в формате WebP
$outputFile = 'output.webp';

// Качество изображения (0-100, где 100 — лучшее качество)
$quality = 80;

// Конвертируем изображение в WebP
imagewebp($sourceImg, $outputFile, $quality);

// Освобождаем ресурсы
imagedestroy($sourceImg);

echo "Преобразовано в WebP: {$outputFile}";

Что делает этот скрипт


  1. Проверка формата исходного изображения:
    Скрипт определяет тип изображения с помощью функции exif_imagetype() и загружает изображение в зависимости от формата (JPEG, PNG, GIF).
  2. Проверка поддержки WebP:
    Если библиотека GD не поддерживает формат WebP, программа завершится с сообщением об ошибке.
  3. Преобразование в WebP:
    Изображение сохраняется в формате WebP с заданным качеством (параметр $quality).
  4. Освобождение ресурсов:
    После завершения работы ресурсы изображения освобождаются с помощью imagedestroy().

Как запустить


  1. Скачайте изображение (например, .jpg, .png, .gif) и поместите его в папку с этим PHP-скриптом.
  2. Замените путь к файлу в переменной $filePath на путь к вашему изображению.
  3. Запустите скрипт через терминал или веб-сервер, чтобы получить файл в формате WebP.

Этот код универсален и позволяет преобразовывать изображения любого из перечисленных форматов (JPG, PNG, GIF) в WebP одним действием.
Вложение записи
Автор:  Вчера, 1:22 pm