imagewebp
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
imagewebp — 将 WebP 格式的图像输出到浏览器或文件
说明
   输出或保存为指定 image 的 WebP 版本。
  
参数
- 
image
- 由图象创建函数(例如imagecreatetruecolor())返回的 GdImage 对象。 
- file
- 
      文件保存的路径或者已打开的流资源(此方法返回后自动关闭该流资源),如果未设置或为 null,将会直接输出原始图象流。
- quality
- 
      quality范围从 0(最低质量,最小文件体积)到 100(最好质量, 最大文件体积)。
错误/异常
   如果 quality 无效,抛出 ValueError。
  
更新日志
| 版本 | 说明 | 
|---|---|
| 8.4.0 | 现在如果 quality无效,抛出 ValueError。 | 
| 8.0.0 | image现在需要 GdImage 实例;之前需要有效的gdresource。 | 
示例
示例 #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');
?>
  +添加备注
  
用户贡献的备注 5 notes
  
  
  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);
?>  
  
  Khalyomede ¶
  
 
  6 years ago
  As of today (end of january 2019), WebP is now supported across all the major browsers (Edge, Chrome, Firefox, Opera).  
  
  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;
    }  
  
  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.