PHP 8.5.0 Alpha 1 available for testing

imagewebp

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

imagewebpMuestra una imagen WebP hacia un navegador o un fichero

Descripción

imagewebp(GdImage $image, resource|string|null $file = null, int $quality = -1): bool

Muestra o guarda una versión WebP de la image proporcionada.

Parámetros

image

Un objeto GdImage, retornado por una de las funciones de creación de imágenes, como imagecreatetruecolor().

file

The path or an open stream resource (which is automatically closed after this function returns) to save the file to. If not set or null, the raw image stream will be output directly.

quality

quality rango de 0 (la peor calidad, fichero más pequeño) a 100 (mejor calidad, fichero más grande). Si se proporciona el valor -1, se utiliza el valor por omisión 80.

Valores devueltos

Esta función retorna true en caso de éxito o false si ocurre un error.

Precaución

However, if libgd fails to output the image, this function returns true.

Errores/Excepciones

Genera una ValueError si quality es inválido.

Historial de cambios

Versión Descripción
8.4.0 Genera ahora una ValueError si quality es inválido.
8.0.0 image expects a GdImage instance now; previously, a valid gd resource was expected.

Ejemplos

Ejemplo #1 Guardado de un fichero WebP

<?php
// Crea una imagen vacía y se añade texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);

imagestring($im, 1, 5, 5, 'WebP con PHP', $text_color);

// Guardado de la imagen
imagewebp($im, 'php.webp');

?>

add a note

User Contributed Notes 5 notes

up
34
Khalyomede
6 years ago
As of today (end of january 2019), WebP is now supported across all the major browsers (Edge, Chrome, Firefox, Opera).
up
31
vinicius dot sizilio at gmail dot com
5 years ago
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);

?>
up
26
JSix
3 years ago
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;
}
up
4
day4gerard
5 years ago
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.
up
1
Sam
4 years ago
Safari on mac now has limited support (limited to Safari 14+ on Big Sur or later)

Safari on iOS 14.4 and higher has full support
To Top