<?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}";
Что делает этот скрипт
- Проверка формата исходного изображения:
Скрипт определяет тип изображения с помощью функцииexif_imagetype()
и загружает изображение в зависимости от формата (JPEG, PNG, GIF). - Проверка поддержки WebP:
Если библиотека GD не поддерживает формат WebP, программа завершится с сообщением об ошибке. - Преобразование в WebP:
Изображение сохраняется в формате WebP с заданным качеством (параметр$quality
). - Освобождение ресурсов:
После завершения работы ресурсы изображения освобождаются с помощьюimagedestroy()
.
Как запустить
- Скачайте изображение (например,
.jpg
,.png
,.gif
) и поместите его в папку с этим PHP-скриптом. - Замените путь к файлу в переменной
$filePath
на путь к вашему изображению. - Запустите скрипт через терминал или веб-сервер, чтобы получить файл в формате WebP.
Этот код универсален и позволяет преобразовывать изображения любого из перечисленных форматов (JPG, PNG, GIF) в WebP одним действием.