imagewebp

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

imagewebpMostra uma imagem WebP no navegador ou grava em arquivo

Descrição

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

Motra ou grava uma versão WebP da imagem informada em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

file

O caminho ou um recurso de fluxo aberto (que será fechado automaticamente após o retorno desta função) para salvar o arquivo. Se não for definido ou for null, o fluxo da imagem bruta será enviado diretamente.

quality

quality varia de 0 (pior qualidade, arquivo menor) a 100 (melhor qualidade, arquivo maior). Se -1 for informado, o valor padrão de 80 será usado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Cuidado

Entretanto, se a biblioteca libgd falhar ao gerar a imagem, esta função retornará true.

Erros/Exceções

Lança um ValueError se quality for inválido.

Registro de Alterações

Versão Descrição
8.4.0 Agora lança um ValueError se quality for inválido.
8.0.0 O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Gravando um arquivo WebP

<?php
// Cria uma imagem vazia e adiciona texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);

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

// Grava a imagem
imagewebp($im, 'php.webp');
?>

adicione uma nota

Notas Enviadas por Usuários (em inglês) 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
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