首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP8.1 -如何让imageavif()工作?

PHP8.1 -如何让imageavif()工作?
EN

Stack Overflow用户
提问于 2021-12-17 19:36:23
回答 1查看 655关注 0票数 4

最近,我将我的PHP版本升级到8.1-fpm,还将Debian升级到Bullseye。我在某个地方读到Bullseye提供了AVIF支持,但是当我尝试使用imageavif()时,我得到了以下错误:

代码语言:javascript
复制
PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function imageavif()

我在服务器上运行了"php -i \ grep“,它返回:

代码语言:javascript
复制
ImageMagick supported formats => 3FR, 3G2, 3GP, AAI, AI, APNG, ART, ARW, AVI, AVIF, AVS, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CR3, CRW, CUR, CUT, DATA, DCM, DCR, DCX, DDS, DFONT, DNG, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, FAX, FILE, FITS, FRACTAL, FTP, FTS, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, H, HALD, HDR, HEIC, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, K25, KDC, LABEL, M2V, M4V, MAC, MAGICK, MAP, MASK, MAT, MATTE, MEF, MIFF, MKV, MNG, MONO, MOV, MP4, MPC, MPG, MRW, MSL, MTV, MVG, NEF, NRW, NULL, ORF, OTB, OTF, PAL, PALM, PAM, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, POCKETMOD, PPM, PREVIEW, PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIDEO, VIFF, VIPS, VST, WBMP, WEBM, WEBP, WMV, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YCbCr, YCbCrA, YUV

我如何让imageavif()工作?我是不是遗漏了什么?

编辑:我运行了函数“print_r(gd_info())”,这是结果数组:

代码语言:javascript
复制
Array
(
    [GD Version] => 2.3.0
    [FreeType Support] => 1
    [FreeType Linkage] => with freetype
    [GIF Read Support] => 1
    [GIF Create Support] => 1
    [JPEG Support] => 1
    [PNG Support] => 1
    [WBMP Support] => 1
    [XPM Support] => 1
    [XBM Support] => 1
    [WebP Support] => 1
    [BMP Support] => 1
    [AVIF Support] => 
    [TGA Read Support] => 1
    [JIS-mapped Japanese Font Support] => 
)

似乎我有GD,但它的AVIF支持没有设置。我怎样才能让它支持AVIF?

另外,我目前正在使用imagewebp(),该函数工作得很好。

编辑:感谢Nico Haase给我指点了GitHub的ř问题,řej Sur的PHP存储库- https://github.com/oerdnj/deb.sury.org/issues/1641

同时,有什么我可以做的,让imageavif()工作不会太过分,还是最好只是等待?

EN

回答 1

Stack Overflow用户

发布于 2022-02-05 22:44:34

GD扩展依赖于libavif包来提供底层AVIF编解码器。GD扩展需要libavif版本0.8.2或更高版本。

Ubuntu/Debian

代码语言:javascript
复制
apt install libavif-dev

RHEL/Fedora

代码语言:javascript
复制
dnf install libavif-devel

一旦安装了依赖项,就可以使用AVIF支持在./配置脚本中使用新的- with标志编译PHP。

代码语言:javascript
复制
./buildconf --force
./configure --enable-gd --with-avif

请注意,上面的./configure命令只是一个例子;对于生产系统,也要确保启用其他扩展。

来源:https://php.watch/versions/8.1/gd-avif

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

https://stackoverflow.com/questions/70398133

复制
相关文章

相似问题

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