阅读量:0
在 PHP 中,可以使用 GD 库或 ImageMagick 库来实现 WebP 与其他图像格式之间的互相转换。这里将分别介绍这两种方法。
方法一:使用 GD 库
首先,确保你的 PHP 安装包含了 GD 库并支持 WebP 格式。你可以通过运行 phpinfo()
函数来检查 GD 库是否已启用以及其支持的格式。
- 将其他格式的图像转换为 WebP 格式:
function convertToWebP($source, $destination, $quality = 80) { $image = imagecreatefromstring(file_get_contents($source)); if ($image) { imagepalettetotruecolor($image); imagealphablending($image, true); imagesavealpha($image, true); return imagewebp($image, $destination, $quality); } return false; } $source = 'path/to/your/image.jpg'; // 输入文件路径 $destination = 'path/to/your/output.webp'; // 输出文件路径 $quality = 80; // 设置 WebP 图像质量,范围从 0(最差)到 100(最好) if (convertToWebP($source, $destination, $quality)) { echo "WebP 图像已成功创建"; } else { echo "无法创建 WebP 图像"; }
- 将 WebP 格式的图像转换为其他格式:
function convertFromWebP($source, $destination, $type = 'jpeg') { $image = imagecreatefromwebp($source); if ($image) { switch ($type) { case 'jpeg': return imagejpeg($image, $destination); case 'png': return imagepng($image, $destination); case 'gif': return imagegif($image, $destination); default: return false; } } return false; } $source = 'path/to/your/image.webp'; // 输入文件路径 $destination = 'path/to/your/output.jpg'; // 输出文件路径 $type = 'jpeg'; // 输出文件类型,可以是 'jpeg'、'png' 或 'gif' if (convertFromWebP($source, $destination, $type)) { echo "图像已成功转换"; } else { echo "无法转换图像"; }
方法二:使用 ImageMagick 库
首先,确保你的 PHP 安装包含了 ImageMagick 库并支持 WebP 格式。你可以通过运行 phpinfo()
函数来检查 ImageMagick 库是否已启用以及其支持的格式。
- 将其他格式的图像转换为 WebP 格式:
function convertToWebP($source, $destination, $quality = 80) { try { $image = new Imagick($source); $image->setImageFormat('WEBP'); $image->setImageCompressionQuality($quality); $image->writeImage($destination); return true; } catch (Exception $e) { return false; } } $source = 'path/to/your/image.jpg'; // 输入文件路径 $destination = 'path/to/your/output.webp'; // 输出文件路径 $quality = 80; // 设置 WebP 图像质量,范围从 0(最差)到 100(最好) if (convertToWebP($source, $destination, $quality)) { echo "WebP 图像已成功创建"; } else { echo "无法创建 WebP 图像"; }
- 将 WebP 格式的图像转换为其他格式:
function convertFromWebP($source, $destination, $type = 'jpeg') { try { $image = new Imagick($source); $image->setImageFormat(strtoupper($type)); $image->writeImage($destination); return true; } catch (Exception $e) { return false; } } $source = 'path/to/your/image.webp'; // 输入文件路径 $destination = 'path/to/your/output.jpg'; // 输出文件路径 $type = 'jpeg'; // 输出文件类型,可以是 'jpeg'、'png' 或 'gif' if (convertFromWebP($source, $destination, $type)) { echo "图像已成功转换"; } else { echo "无法转换图像"; }
注意:在使用这些示例代码时,请确保已正确安装和配置了相应的库(GD 或 ImageMagick),并根据需要修改文件路径和参数。