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

La ruta o un recurso de flujo abierto (que se cierra automáticamente después de que esta función retorne) donde guardar el archivo. Si no se define o es null, el flujo de imagen sin procesar se enviará directamente.

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

Sin embargo, si libgd no logra producir la imagen, esta función devuelve 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 ahora espera una instancia de GdImage; anteriormente, se esperaba un resource gd válido.

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
7 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
4 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
6 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