要在 PHP 中将其他格式的图片转换为 WebP 格式,您可以使用 GD 库或 ImageMagick
方法1:使用 GD 库
<?php
phpinfo();
?>
访问此文件,查看是否已启用 GD 库和 WebP 支持。
<?php
function convertToWebP($source, $destination, $quality = 80) {
if (!file_exists($source)) {
echo "Source image not found.";
return false;
}
// 获取源图像的类型
$imageType = exif_imagetype($source);
switch ($imageType) {
case IMAGETYPE_JPEG:
$image = imagecreatefromjpeg($source);
break;
case IMAGETYPE_PNG:
$image = imagecreatefrompng($source);
break;
default:
echo "Unsupported image type.";
return false;
}
// 将源图像保存为 WebP 格式
$success = imagewebp($image, $destination, $quality);
imagedestroy($image);
if ($success) {
echo "Image successfully converted to WebP.";
} else {
echo "Error converting image to WebP.";
}
return $success;
}
$sourceImage = 'path/to/your/input/image.jpg';
$destinationImage = 'path/to/your/output/image.webp';
$quality = 80; // 设置 WebP 图像的质量,范围从 0(最差)到 100(最好)
convertToWebP($sourceImage, $destinationImage, $quality);
?>
将 $sourceImage
和 $destinationImage
变量更改为您的输入和输出图像路径。
方法2:使用 ImageMagick
convert -version
查看是否已启用 WebP 支持。
<?php
function convertToWebP($source, $destination, $quality = 80) {
if (!file_exists($source)) {
echo "Source image not found.";
return false;
}
// 使用 ImageMagick 将源图像转换为 WebP
$command = "convert \"{$source}\" -quality {$quality} \"{$destination}\"";
$output = [];
$result = null;
exec($command, $output, $result);
if ($result === 0) {
echo "Image successfully converted to WebP.";
} else {
echo "Error converting image to WebP.";
}
return $result === 0;
}
$sourceImage = 'path/to/your/input/image.jpg';
$destinationImage = 'path/to/your/output/image.webp';
$quality = 80; // 设置 WebP 图像的质量,范围从 0(最差)到 100(最好)
convertToWebP($sourceImage, $destinationImage, $quality);
?>
将 $sourceImage
和 $destinationImage
变量更改为您的输入和输出图像路径。
这两种方法都可以将 JPEG 和 PNG 图像转换为 WebP 格式。根据您的需求和服务器配置选择合适的方法。