如何在PHP中实现WebP图片的转换

avatar
作者
猴君
阅读量:0

要在 PHP 中将其他格式的图片转换为 WebP 格式,您可以使用 GD 库或 ImageMagick

方法1:使用 GD 库

  1. 首先确保您的服务器安装了 GD 库和 WebP 支持。创建一个 phpinfo 文件(例如 info.php),并添加以下代码:
<?php phpinfo(); ?> 

访问此文件,查看是否已启用 GD 库和 WebP 支持。

  1. 使用以下示例代码将 JPEG/PNG 图像转换为 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

  1. 首先确保您的服务器安装了 ImageMagick 和 WebP 支持。在命令行中运行以下命令:
convert -version 

查看是否已启用 WebP 支持。

  1. 使用以下示例代码将 JPEG/PNG 图像转换为 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 格式。根据您的需求和服务器配置选择合适的方法。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!