如何在PHP中创建一个.webp格式的图片

12

如何使用PHP创建 .webp 图片?

现代版本的PHP (>= 5.5.0) 可以编译支持 WebP,但从我看到的情况来看,许多 web 主机并不常见。如果编译支持 WebP,则可以使用内置的imagewebp()函数创建 .webp 图像。

还有哪些用于使用PHP创建 .webp 图片的替代方法?库、API或其他方法?


1
ImageMagick 包含一个 WebP 扩展。 - Barmar
1
我之前使用过 Modernizr 来测试 webp 的支持情况,然后有条件地显示适当的图像格式。希望随着时间的推移,更多的浏览器支持 webp。 - Brett DeWoody
3
你是从哪里创建你的.webp图片的?假设你正在将JPEG或PNG转换为WebP,你可以使用imagecreatefromjpegimagecreatefrompng创建图片资源,然后使用imagewebp($im, 'file.webp');保存。你也可以批量转换使用convert(Imagick)或调用像Cloudinary这样的服务:http://cloudinary.com/documentation/php_image_manipulation(非常棒的服务!) - Eduardo Romero
这正是我想做的,@EduardoRomero。然而,许多服务器仍不支持webp扩展名,因此我正在寻找可以轻松添加的第三方库。 - Brett DeWoody
@BrettDeWoody,你能否使用以下答案之一或者你想到了不同的方法?如果我的回答可行,请告诉我,或者如果你需要做些不同的事情。谢谢!Terry。 - Terry
显示剩余2条评论
5个回答

9
目前可用的选项有:gd(扩展)、imagick(扩展)、imagick(exec-call)、gmagick(扩展)、gmagick(exec-call)、cwebp(exec-call)、gmagick(exec call)或调用云服务。我在github上创建了一个名为“webp-convert”的库,它尝试了所有方法。自述文件描述了每种方法的优缺点。它在这里可用:https://github.com/rosell-dk/webp-convert
出于我不知道的原因,imagick/gmagick扩展生成的质量并不比原始文件更好。这只是扩展的问题,而不是exec调用的问题。

3

WebP图像创建过程:

您可以使用以下PHP命令获取WebP图像。

$imgName    =   "codingslover.jpg";
$webPName   =   "codingslover.webp";

Syntax:

 cwebp [quality qualitypercentage] [source image] -o [destination]

exec("cwebp -q 0 ".$imgName." -o ".$webPName." ");

Anthor Method:

exec("convert -colorspace RGB ".$imgName." ".$webPName . " ");

Exec:在PHP中执行指定的命令。

http://php.net/manual/zh/function.exec.php


2
你可以直接到Google并从源代码构建WebP库。使用此链接获取适用于你操作系统的相应存档:

https://developers.google.com/speed/webp/docs/compiling#building

您可以在php的system()函数中使用以下命令来转换图像:
语法:
  cwebp [quality 
 qualitypercentage] [source 
 image] -o [destination]`

 cwebp -q 80 source.png -o 
 destination.webp

我建议先阅读上面的链接来编译你的库,然后在这里获取有关使用库的更多信息
祝你项目顺利!

1
这个与主题无关,但你能推荐一些教程/视频来帮助理解从源代码构建库的确切含义吗? - Sandeepan Nath

0

您可以使用Intervention Image Library。它提供了各种图像编码选项和与图像格式相关的实用程序。这里是将图像转换为webp格式的示例代码片段。它支持以下众多图像编码:

  • jpg — 返回JPEG编码的图像数据
  • png — 返回便携式网络图形(PNG)编码的图像数据
  • gif — 返回图形交换格式(GIF)编码的图像数据
  • tif — 返回标记图像文件格式(TIFF)编码的图像数据
  • bmp — 返回位图(BMP)编码的图像数据
  • ico — 返回ICO编码的图像数据
  • psd — 返回Photoshop文档(PSD)编码的图像数据
  • webp — 返回WebP编码的图像
  • data data-url — 在数据URI方案(RFC 2397)中对当前图像数据进行编码

-1

现在有几个npm软件包可以从PNG、JPEG和TIFF格式创建.webp图片。

这里有一个Gulp插件作为例子 - gulp-webp


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