GD 库将图片转换为 webp 格式的示例代码

如果您无法使用 exec() 函数来调用 ImageMagick 进行图片转换,可以尝试使用 PHP 内置的 GD 库来实现相同的功能。以下是使用 GD 库将图片转换为 webp 格式的示例代码:

<?php
$originalImagePath = $srcset_image;
$webpImagePath = 'bmz_cache/webp/' . pathinfo($originalImagePath, PATHINFO_BASENAME) . '.webp';

// 获取原始图片的信息
$imageInfo = getimagesize($originalImagePath);

// 根据原始图片类型创建图像资源
if ($imageInfo['mime'] == 'image/jpeg') {
    $sourceImg = imagecreatefromjpeg($originalImagePath);
} elseif ($imageInfo['mime'] == 'image/png') {
    $sourceImg = imagecreatefrompng($originalImagePath);
} else {
    die("Unsupported image type.");
}

// 创建新的图像资源并转换为 webp 格式
$webpQuality = 80; // 可根据需要调整压缩质量
imagewebp($sourceImg, $webpImagePath, $webpQuality);

// 释放资源
imagedestroy($sourceImg);

echo "图像转换成功!";
?>

在上述代码中,我们首先根据原始图片的类型(jpeg 或 png)使用 imagecreatefromjpeg()imagecreatefrompng() 创建图像资源,然后使用 imagewebp() 函数将其保存为 webp 格式的图片。最后,我们释放了图像资源,并输出转换成功的消息。

请注意,GD 库可能不支持所有 ImageMagick 提供的功能,因此在使用 GD 库时,您可能会有一些限制。您可以根据自己的需求适当调整代码,并确保对转换后的图像进行测试以确保符合您的预期。希望这种替代方案能够帮助您顺利完成图片转换任务。


已发布

分类

作者:

标签

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注