As of today (end of january 2019), WebP is now supported across all the major browsers (Edge, Chrome, Firefox, Opera).
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
imagewebp — Вывод WebP-изображение в браузер или файл
Функция выводит или сохраняет изображение image
в формате WebP.
image
Объект GdImage, который возвращает одна из функций, создающих изображения, например, imagecreatetruecolor().
file
Путь или ресурс открытого потока, который функция автоматически закрывает
после возврата значения, для сохранения файла. Функция выведет поток необработанного изображения напрямую,
если параметр не установили или передали в аргументе значение null
.
quality
Параметр quality
устанавливает диапазон качества значениями
от 0 — худшее качество, меньший размер файла, — до 100 для наилучшего качества при наибольшем размере файла.
Функция возвращает true
, если выполнилась успешно, или false
, если возникла ошибка.
Однако,
если libgd не может вывести изображения, эта функция вернёт true
.
Функция выбрасывает ошибку ValueError,
если значение параметра quality
недопустимо.
Версия | Описание |
---|---|
8.4.0 |
Функция теперь выбрасывает ошибку ValueError,
если значение параметра quality недопустимо.
|
8.0.0 |
Параметр image теперь ожидает экземпляр класса GdImage;
раньше параметр ждал корректный gd -ресурс (resource).
|
Пример #1 Пример сохранения WebP-файла
<?php
// Создать пустое изображение и добавить текст
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'WebP with PHP', $text_color);
// Сохранить изображение
imagewebp($im, 'php.webp');
?>
As of today (end of january 2019), WebP is now supported across all the major browsers (Edge, Chrome, Firefox, Opera).
To convert a PNG image to Webp, we can do this:
<?php
// Image
$dir = 'img/countries/';
$name = 'brazil.png';
$newName = 'brazil.webp';
// Create and save
$img = imagecreatefrompng($dir . $name);
imagepalettetotruecolor($img);
imagealphablending($img, true);
imagesavealpha($img, true);
imagewebp($img, $dir . $newName, 100);
imagedestroy($img);
?>
Function to save any image to Webp
public static function webpImage($source, $quality = 100, $removeOld = false)
{
$dir = pathinfo($source, PATHINFO_DIRNAME);
$name = pathinfo($source, PATHINFO_FILENAME);
$destination = $dir . DIRECTORY_SEPARATOR . $name . '.webp';
$info = getimagesize($source);
$isAlpha = false;
if ($info['mime'] == 'image/jpeg')
$image = imagecreatefromjpeg($source);
elseif ($isAlpha = $info['mime'] == 'image/gif') {
$image = imagecreatefromgif($source);
} elseif ($isAlpha = $info['mime'] == 'image/png') {
$image = imagecreatefrompng($source);
} else {
return $source;
}
if ($isAlpha) {
imagepalettetotruecolor($image);
imagealphablending($image, true);
imagesavealpha($image, true);
}
imagewebp($image, $destination, $quality);
if ($removeOld)
unlink($source);
return $destination;
}
WebP is not yet supported by Safari, although they are experimenting with it.
Check out https://caniuse.com/#search=webp for the latest support information.