PHP 8.4.1 Released!

imagewebp

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

imagewebpOutput a WebP image to browser or file

Descrizione

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

Outputs or saves a WebP version of the given image.

Elenco dei parametri

image

Una risorsa immagine, restituita da una delle funzioni di creazione immagine, come imagecreatetruecolor().

file

Il percorso in cui salvare il file. Se non è impostato o è null, viene restituito il flusso raw dell'immagine.

quality

quality ranges from 0 (worst quality, smaller file) to 100 (best quality, biggest file).

Valori restituiti

Restituisce true in caso di successo, false in caso di fallimento.

Attenzione

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

Errori/Eccezioni

Throws a ValueError if quality is invalid.

Log delle modifiche

Versione Descrizione
8.4.0 Now throws a ValueError if quality is invalid.
8.0.0 image expects a GdImage instance now; previously, a valid gd resource was expected.

Esempi

Example #1 Saving an WebP file

<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);

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

// Save the image
imagewebp($im, 'php.webp');

// Free up memory
imagedestroy($im);
?>

add a note

User Contributed Notes 5 notes

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