如果您无法使用 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 库时,您可能会有一些限制。您可以根据自己的需求适当调整代码,并确保对转换后的图像进行测试以确保符合您的预期。希望这种替代方案能够帮助您顺利完成图片转换任务。
发表回复