首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在php中创建avif文件?

如何在php中创建avif文件?
EN

Stack Overflow用户
提问于 2021-01-25 21:35:23
回答 3查看 1.6K关注 0票数 2

谁知道如何在php中编写avif图像文件?对于webp文件,我有一个函数imagewebp。但是avif呢?

在不同的服务器上使用PHP版本7.4、7.1和7.2。

非常感谢

EN

回答 3

Stack Overflow用户

发布于 2021-04-01 18:15:47

编辑

它已在PHP8.1 https://php.watch/versions/8.1/gd-avif中实现

目前还没有专门的功能来做到这一点。GD已经实现了AVIF支持,但尚未在PHP中实现。他们正在努力,https://bugs.php.net/bug.php?id=80828,请投赞成票。

在创建该函数之前,我想还有其他方法可以创建:

(1)使用php /shell和一个命令行应用程序(如)的应用程序。未测试的代码:

代码语言:javascript
复制
if (function_exists("exec")) {
  $command = "convert -size 600x600 canvas:white white.avif ";
  exec($command, $output);
  print("<pre>".print_r($output,true)."</pre>"); //debug
} 
else {
  echo "EXEC function is not available. See php.ini disabled_functions.<br />\n";
}

使用模块的php (2)

https://www.php.net/manual/en/book.imagick.php

Verify ImageMagick installation

对于这两种方法,您都需要确保使用正确的库编译了最新版本的ImageMagik。https://github.com/ImageMagick/ImageMagick/issues/1432

票数 2
EN

Stack Overflow用户

发布于 2021-01-25 21:47:47

不幸的是,目前还没有对AVIF/AV1图像文件格式的原生PHP支持(在我所知的任何PHP版本中)。

PHP通常依赖于GD、ImageMagick、GMagick (和Exif)图像库,所以-除非这些图像库支持AVIF/AV1图像文件格式,否则恐怕不会有一个简单的(和“原生”的)解决方案。可能有一些第三方库可以支持这一点,可能是用纯PHP编写的,但是这种格式相对较新,还没有得到广泛的支持,所以我认为这些库需要一段时间才能获得,而纯PHP图像处理库在性能方面可能效率很低。

也就是说,我想你可以考虑使用一种变通的办法,那就是PHP-生成任何其他图像格式(比如JPEG或PNG)的图像,然后使用命令行工具将生成的图像文件转换为AVIF/AV1?

有关示例https://reposhub.com/rust/image-processing/kornelski-cavif.html,请参阅

票数 1
EN

Stack Overflow用户

发布于 2021-08-12 01:18:53

好消息- the work's been done在libgd中支持AVIF,这项工作是has been propagated into PHP。它应该在PHP 8.1中发布。

享受吧!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65885825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档