如何将WebP图像格式转换为普通格式?PHP

5

我有一个iOS和Android应用。有时用户会上传webP格式的图片到我的服务器。问题是当从我的服务器下载该图片时,iOS无法显示它。

因此,我想在我的PHP代码中检查,如果图片是webP格式,则将其转换为PNG格式。

使用PHP如何实现这个功能呢?


ImageMagick可以处理WebP图像格式... - n00dl3
@JuniusRendel谢谢您的回复。您能否写下您建议的代码?答案。 - david
дҪ иҝҳеә”иҜҘзңӢдёҖдёӢиҝҷдёӘпјҢ他们用他们зҡ„libwebpеә“и§ЈйҮҠдәҶеҰӮдҪ•еңЁеҚ•дёӘе‘Ҫд»ӨиЎҢдёӯиҪ¬жҚўдёәPNGгҖӮ - n00dl3
2个回答

24

虽然已经很晚了,但只是为了做这件事。它可以仅使用PHP完成,不需要任何外部工具。

引用自PHP.net文档:

<?php
// Load the WebP file
$im = imagecreatefromwebp('./example.webp');

// Convert it to a jpeg file with 100% quality
imagejpeg($im, './example.jpeg', 100);
imagedestroy($im);
?>

因此我假设您可以使用imagepng()而不是示例中的imagejpeg。


4

使用 libwebp: (我假设$file是绝对路径,libwebp已经安装)

$regex="/^(.*)(\.webp)$/";
if(preg_match($regex, $file)){
   $out=preg_replace($regex, "${1}.png", $file);
   exec("dwebp $file -o $out");
}

没有测试,但应该可以工作...


1
请注意:不要假定 Web 主机已启用 exec()。 - Ramon Fincken

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接