PHP Conference Japan 2024

imagewebp

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

imagewebp將 WebP 影像輸出到瀏覽器或檔案

說明

imagewebp(GdImage $image, 資源|字串|null $file = null, 整數 $quality = -1): 布林值

輸出或儲存給定 image 的 WebP 版本。

參數

image

一個 GdImage 物件,由其中一個影像建立函式返回,例如 imagecreatetruecolor()

file

要儲存檔案的路徑或開啟的串流資源(在此函式返回後會自動關閉)。如果未設定或為 null,則會直接輸出原始影像串流。

quality

quality 的範圍從 0(品質最差,檔案最小)到 100(品質最佳,檔案最大)。

返回值

成功時返回 true,失敗時返回 false

警告

然而,如果 libgd 無法輸出影像,此函式會返回 true

錯誤/例外

如果 quality 無效,則會拋出 ValueError

更新日誌

版本 說明
8.4.0 現在,如果 quality 無效,則會拋出 ValueError
8.0.0 image 現在需要一個 GdImage 實例;以前,需要一個有效的 gd 資源

範例

範例 #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');

// 釋放記憶體
imagedestroy($im);
?>

新增註釋

使用者貢獻的註釋 5 則註釋

vinicius dot sizilio at gmail dot com
4 年前
要將 PNG 影像轉換為 Webp,我們可以這樣做

<?php

// 圖片
$dir = 'img/countries/';
$name = 'brazil.png';
$newName = 'brazil.webp';

// 建立並儲存
$img = imagecreatefrompng($dir . $name);
imagepalettetotruecolor($img);
imagealphablending($img, true);
imagesavealpha($img, true);
imagewebp($img, $dir . $newName, 100);
imagedestroy($img);

?>
Khalyomede
5 年前
截至今日(2019 年 1 月底),所有主流瀏覽器(Edge、Chrome、Firefox、Opera)都已支援 WebP。
JSix
2 年前
將任何圖片儲存為 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 年前
Safari 尚未支援 WebP,不過他們正在實驗中。

查看 https://caniuse.dev.org.tw/#search=webp 以取得最新的支援資訊。
Sam
3 年前
Mac 上的 Safari 現在有有限的支援(僅限 Big Sur 或更高版本上的 Safari 14+)

iOS 14.4 及更高版本的 Safari 已完全支援
To Top