使WordPress成为核心

开的4年前

关闭8个月前

上次修改时间6个月前

#51228 关闭 增强 (固定的)

包括对AVIF图像格式的支持

报告人: 卢克费尔托斯的简介 扔路灯 所有者: 亚当·西尔弗斯坦的简介 亚当西尔弗斯坦
里程碑: 6.5 优先: 正常的
严重程度: 正常的 版本:
组件: 媒体 关键词: has-patch接口 has-unit-测试 犯罪 has-testing-info(有测试信息) 现场附加指南 has-dev-注释
重点: 性能,持续性 复写的副本:

描述

AVIF图像的当前MIME类型为

图像/aif

.
https://github.com/AOMediaCodec/av1-avif/issues/59

Google Chrome 85版本增加了对AVIF图像格式的支持,而来自苹果的Mozilla Firefox和Safari也不会落后太多。

AVIF图像格式提供了比JPG、PNG和WebP图像更大的文件大小和压缩增益。

附件(4)

51228-avif-compat-php.diff(1.1 KB)-由添加亚当西尔弗斯坦 11个月前.
51228-avif-兼容-php.2.diff(2.0 KB)-由添加亚当西尔弗斯坦 11个月前.
51228.迪夫(58.0 KB)-由添加亚当西尔弗斯坦 8个月前.
51228.2.差异(59.4 KB)-由添加亚当西尔弗斯坦 8个月前.

将所有附件下载为:.zip文件

更改历史记录(97)

#1 @亚美尼亚语
4年以前

我在Firefox 81测试版上,已经有了avif支持+1如果维护人员同意,我将提交一个补丁:)。

上次编辑时间4年前通过阿耶什拉詹斯(以前的)(差异)

#3 @亚美尼亚语
4年以前

我向PHPMailer提交了一份PR,其中显然包含了一份地雷类型列表。我想SimplePie也需要更新。在那之后,一切都将进入核心。
我认为图像编辑器不会与heic或avif兼容,因此在其中添加avif/heic不会很好。

这张票是在松弛(Slack)yui的in#core。查看日志.


4年以前

#5 @navjotjsingh公司
3年以前

Webkit中似乎也添加了AVIF支持:https://bugs.webkit.org/show_bug.cgi?id=207750

目前,WordPress至少可以允许通过媒体库上传AVIF图像吗?

上次编辑时间3年前通过navjotjsingh公司(以前的)(差异)

#6 @亚当西尔弗斯坦
3年以前

  • 里程碑已从更改等待审查未来版本
  • 所有者设置为亚当西尔弗斯坦
  • 状态已从更改新的分配

#7 @暴君
2年以前

AVIF支持已登陆Safari Technology Preview 149(在macOS 13和iOS 16上)。

@adamsilverstein,由于Microsoft Edge仍然是唯一一个没有支持的浏览器(目前),AVIF支持何时会进入核心阶段?谢谢!

#8 @亚当西尔弗斯坦
2年以前

嘿@暴君-谢谢你指出这个变化。我也一直在关注,很高兴看到AVIF着陆——我希望我们能看到Edge的支持,就像你提到的那样。

我觉得我们可以在这里开始开发一个补丁来进行测试,但是对于AVIF来说,一个大的警告是PHP在8.1版之前缺乏默认支持(https://php.watch/versions/8.1/gd-avif). 虽然较旧的PHP版本可以通过更新的GD或Imagick库支持AVIF,但这可能并不常见。

着陆https://core.trac.wordpress.org/ticket/48116将帮助我们了解更多有关生态系统中服务器端AVIF支持级别的信息。另一种可能性是将图像压缩移动到客户端-可以使用WASM编译libAVIF,以便直接在浏览器中运行(在中跟踪https://github.com/WordPress/performance/issues/17).

#9 随访: @jb510型
2年以前

这是WP如何采用渐进式增强的一个很好的例子。现在开始为运行8.1的站点支持AVIF,并接受运行8.1以下的站点在升级之前不会获得该功能。

就我个人而言,我预计AVIF的使用速度会比WebP快得多。似乎我们正在添加WebP,因为它已经超过了峰值使用量。这绝对不是事实,w3twchs跟踪了这一点,收养率仍在攀升,但这确实“感觉”有点晚了。

有人多次表示,WP应该推动网络标准向前发展,而不是成为caboose。

#10 答复: 9 @暴虐的
2年以前

回复jb510型:

这是WP如何采用渐进式增强的一个很好的例子。现在开始为运行8.1的站点支持AVIF,并接受运行8.1以下的站点在升级之前不会获得该功能。

是的,我曾在我的列表中问@adamsilverstein,WordPress是否会考虑这一点:不要试图不惜任何代价为所有WordPres用户实现一个功能(例如,使用复杂的基于客户端的解决方案支持PHP 5.6),而只是在支持AVIF的平台上“开箱即用”地添加AVIF。

我很高兴看到你确实在考虑这个问题:https://github.com/WordPress/performance/issues/11,假设WebP模块描述(“[…]如果服务器支持”)也适用于AVIF。在那里继续讨论有意义吗?

上次编辑时间2年前通过暴君(以前的)(差异)

#11 @萨伯恩哈特
2年以前

#56741被标记为副本。

#12 @格雷本斯
2年以前

AVIF是在网络上共享HDR图像的关键格式。就WordPress处理图像(缩略图等)而言,重要的是要包括一些测试用例,这些测试用例将保留CICP/ICC数据(以及适当的10/12位编码),以确保任何衍生内容仍然显示为HDR。

HDR(比白色图像显示亮度更高)的知名度目前较低,但随着图像质量的显著提高以及最近几项促进创建和显示此内容的发展,HDR的知名度可能会快速增长。苹果已经推出了数亿个支持HDR的显示器,Chrome现在支持得很好,Photoshop和Affinity可以用于显示和编辑HDR等。

#13 @格雷本斯
2年以前

这是一个包含几个HDR AVIF图像的示例页面。这是一个WordPress页面,但我必须手动将所有文件上传到WordPres媒体库之外的服务器,并将每个图像链接为WordPress外部的URL。对于这样一个大的教程页面来说,这是值得的,但对于在WordPress网站上广泛使用AVIF来说,这无疑是一个障碍,因为它比简单地上传到媒体库要耗费更多的时间。

https://gregbenzphotography.com/hdr
(在支持HDR的屏幕(如M1 MacBook Pro)上使用Chrome查看此页面,看看HDR有多不可思议。请注意,Safari当前剪辑HDR,FireFox渲染非常暗,但我们看到支持只是时间问题。Photoshop、Adobe Camera RAW、Affinity和许多其他重要的图像创建平台现在都支持HDR,而且时间可能会更长)。

请注意,这里的图像是HDR,这意味着WordPress媒体库中没有适合的格式(JPG、PNG等)。这里的文件节省量很大。我看到过从JPG到AVIF的文件大小减少了30-80%。拥有对AVIF的本地支持(包括保持10-12比特的深度和CICP数据,以便将其正确渲染为任何衍生媒体的HDR)将非常有用。

上次编辑时间2年前通过格雷本斯(以前的)(差异)

#14 @格雷格本茨
2年以前

@adamsilverstein PHP v8.1有什么主要问题吗?是否有一些重要的组件、插件等可能不受支持?你认为这对许多WordPress网站(至少对于那些有足够动机采用AVIF的网站)来说是一个困难的升级吗?

#15 @亚当西尔弗斯坦
2年以前

https://gregbenzphotography.com/hdr

感谢分享链接-这些图片令人难以置信,这是AVIF力量的很好证明。再加上文件大小更小,太棒了!

快速Safari更新-支持现在已经登陆WebKit,我认为这意味着Safari很快将支持AVIF,即使是在缺乏操作系统支持的旧iOS和MacOS版本上。请参阅https://github.com/WebKit/WebKit/pull/5669.

不幸的是,缺乏Edge支持可能仍然是一个障碍,因为我们通常只采用所有主要浏览器都支持的功能(除非缺少该功能不会对用户产生负面影响)。我们可以做任何事情来鼓励Edge增加支持,这都会有所帮助。

PHP v8.1的任何主要问题

据我所知,WordPress还没有完全兼容(请参阅https://make.wordpress.org/core/2022/01/10/wordpress-5-9-and-php-8-0-8-1/&开放式门票). 也就是说,我相信可以在较旧的PHP上使用AVIF和较新的Imagick库。

服务器支持在这里不太重要,只有在底层系统(服务器)支持AVIF时才支持它是可以的——我们已经为WebP做了同样的事情。我们还将探索基于浏览器的编码作为一种可能的前进路径,因为我们现在可以通过WASM运行完整的liibavif。

#16 随访: @jb510型
2年以前

WebP提案的基本缺陷是希望在默认情况下转换所有现有图像/缩略图。

这里的方法应该只是支持AVIF上传并生成这些上传的AVIF缩略图。

唯一的障碍是AVIF,PHP<8.1不支持它,WP仍然被束缚在支持PHP的古老EOL版本上。

需要做出的哲学决定是,在运行PHP 8.1+的安装上有条件地添加AVIF支持是可以接受的,还是我们需要尝试在旧版本上支持AVIF,或者更糟糕的是,等到8.1成为WP的最低支持版本时再添加。

如上所述,我现在投票支持渐进式增强,其中AVIF支持是核心,但仅在运行PHP8.1+时可用,并且GD/imageavi()函数可用。

#17 @格雷本斯
2年以前

@adamsilverstein I没有测试MacOS 13,但不幸的是,iOS16中的AVIF支持不包括HDR AVIF图像。在iPhone/iPad上查看我的站点时,会显示HDR内容被剪辑。

最终在WebKit中使用HDR AVIF是至关重要的,因为它是iOS Chrome等所必需的。考虑到苹果已经推出了数亿个HDR屏幕(它们在游戏中遥遥领先),我认为他们可以随时切换HDR图像支持。一旦他们这样做了,过去4年购买的大多数苹果设备都会支持它,我预计这可能是一个转折点,让它真正开始起飞。

但是,WebKit对标准AVIF的支持允许显著减少文件大小,这对任何站点来说都是巨大的且有益的。

#18 答复: 16 @格雷格本茨
2年以前

回复jb510型:

如上所述,我现在投票支持渐进式增强,其中AVIF支持是核心,但仅在运行PHP8.1+时可用,并且GD/imageavi()函数可用。

同意,只需为那些可以迁移到PHP 8.1的人提供支持。

#19 随访: @亚当西尔弗斯坦
2年以前

@adamsilverstein I没有测试MacOS 13,但不幸的是,iOS16中的AVIF支持不包括HDR AVIF图像。在iPhone/iPad上查看我的站点时,会显示HDR内容被剪辑。

太不幸了!你能用像这样的东西吗照片元素使Safari回退到另一种格式?

我很好奇最近与WebKit的合并能否解决这个问题,并计划在Safari Technology Preview中发布新代码后进行测试。

#20 @亚当西尔弗斯坦
2年以前

WebP提案的基本缺陷是希望在默认情况下转换所有现有图像/缩略图。
这里的方法应该只是支持AVIF上传并生成这些上传的AVIF缩略图。

这正是我们在WordPress 5.8中为WebP所做的;被拒绝的“默认”提案是这项工作的后续行动。

唯一的大障碍是AVIF,PHP<8.1不支持它,WP仍然无法支持PHP的早期EOL版本。

加上Edge缺乏支持。

需要做出的哲学决定是,

这个决定早就做出了——WordPress图像mime类型支持始终取决于支持它的底层图像处理;如果这是一个渐进的增强,那就好了。

有关8.1的核心支持(当前为“beta支持”)的更多信息,请参阅本文-https://make.wordpress.org/core/2022/01/10/wordpress-5-9-and-php-8-0-8-1/

#21 答复: 19 @格雷本斯
2年以前

回复亚当西尔弗斯坦:

真不幸!你能用这样的东西吗照片元素使Safari回退到另一种格式?

它比只支持文件类型复杂得多。Safari和Firefox将加载图像,但无法正确渲染。即使他们这样做了,显示SDR图像(也可能是AVIF)也比允许浏览器对HDR图像进行色调映射要好。

我正在为我自己的网站做一个更精细的测试,以便在显示器和浏览器都能正确支持的情况下加载HDR图像。

媒体查询最终可能会结合图片元素等内容部分解决此问题。根据我的测试,这可能是一个距离。即使这样,当屏幕处于全亮度时,400 nits显示器上的HDR净空也会变为0,因此您需要在那里显示SDR。没有很好的解决方法(但这不是一个大问题,我只是从专业摄影师的角度来优化东西)。

有一个实验性的JS API来查询HDR净空(请参阅测试#8gregbenzphotography.com/hdr测试)。这将是确定要显示哪些图像的最终方法。然而,目前这需要Chrome上的开发者标志,然后是用户权限。希望长期不需要用户权限,因为净空数据对于优化显示非常有用。

#22 随访: @亚当西尔弗斯坦
2年以前

感谢您提供@gregbenz的所有其他详细信息-太棒了!

#23 @格雷本斯
22个月以前

@adamsilverstein如果你还没有看过,有一个很棒的Photoshop插件(但目前只有Windows),它支持导入和导出AVIF。它甚至支持HDR AVIF。https://github.com/0xC0000054/avif格式

#25 @尼克帕兹
20个月以前

我必须手动将所有文件上传到WordPress媒体库之外的服务器,并将每个图像链接为WordPres外部的URL

@gregbenz如果它有帮助的话,我必须为另一个站点提供一些代码,以简化这个过程。将下面的代码放入代码片段插件或子主题的functions.php文件中,您就可以像上传其他图像一样上传到媒体库。请记住,没有缩略图生成,所以您需要离线生成不同的尺寸,并在需要的地方手动添加每个尺寸。

/***添加Mime类型*/函数t51_add_avif.mime_type($mime_types){$mime_types['avif']='image/avif';返回$mime_types;}add_filter('上传时间','t51_add_avif_mime_type',1,1);/***检查Mime类型*/函数t51_avif_upload_check($checked、$file、$filename、$mimes){if(!$checked['type']){$check_filetype=wp_check_filetype($filename,$mimes);$ext=$check_filetype['ext'];$type=$check_filetype['type'];$proper_filename=$filename;if($type&&0===字符串($type,'image/')&&$ext!=='阿维夫){$ext=$type=false;}$checked=压缩('ext','type','proper_filename');}返回$checked;}add_filter('wp_check_filetype_and_ext','t51_avif_upload_check',10,4);

#26 @格雷本斯
20个月以前

谢谢,@nickpagz,我非常感谢。我同意这只是一个部分的解决方法,在WordPress中获得本地支持以管理缩略图等仍然非常重要。

对于其他关注此主题的人来说,有几种方法可以使用类似的变通方法将AVIF图像上载到媒体库,以下是一个很好的列表:https://wphelp.blog/how-to-use-images-in-avif-format-in-wordpress/

#27 @格雷本斯
17个月以前

相关主题:AVIF增益图:https://core.trac.wordpress.org/ticket/58289

这一新规范将是共享在任何屏幕(SDR或HDR)上都很好看的图像的关键方法,支持AVIF格式将有助于确保文件大小保持紧凑。

#28 @扔路灯
16个月以前

这是对AVIF图像格式的浏览器支持的一个很好的更新。
https://web.dev/avif-updates-2023/

上次编辑时间16个月前通过扔路灯(以前的)(差异)

#29 答复: 22 @格雷本斯
16个月以前

@当ImageMagick在宿主环境中可用时,adamsilverstein如何为AVIF添加媒体库支持?

#30 @jb510型
16个月以前

MS Edge是当前唯一一款不支持AVIF的浏览器。上个月发生了变化,Edge 124(Canary)现在支持AVIF,这意味着它很快就会进入main。

此时,我们可以先切换到AVIF,如果浏览器不支持AVIF的话,CDN将替代Jpegs。所以,让我们尽快将AVIF支持加入媒体库。

#31 @格雷本斯
16个月以前

@jb510太棒了,谢谢!

#33 @亚当西尔弗斯坦
16个月以前

MS Edge是当前唯一不支持AVIF的浏览器。上个月发生了变化,Edge 124(Canary)现在支持AVIF,这意味着它很快就会进入main。

我也读了这篇文章,虽然我还没有能够真正测试这个版本的金丝雀。当然,支持需要稳定,才能被考虑用于核心。

我已经准备好了POC公关向媒体库添加AVIF支持-这已准备好进行测试,但某些功能可能无法按预期工作。请在此处测试并报告结果!

其他几点注意事项:

  • 魔法数字文件类型检测可能不完整(我只测试了少数图像)
  • 与webp实现不同,该代码无法检测AVIF压缩类型,这意味着在处理上传的AVIF时,我们不能明确地将AVIF无损文件视为无损文件。

当ImageMagick在宿主环境中可用时,如何添加对AVIF的媒体库支持?

没错,媒体库中的AVIF支持仍然依赖于与PHP挂钩的底层媒体库(或库)中的支持。否则,您将在尝试上载AVIF文件时出错。如果你有一个支持环境,上面链接的公关应该可以让AVIF图像在媒体库中工作。

#34 @格雷本斯
16个月以前

@adamsilverstein理解并同意WP的发布最好在Edge稳定发布后完成。不应该太远。我在我的(有限的)测试中没有发现任何问题,并且我个人会很乐意在没有开发标志或类似标志的情况下尽快共享AVIF(当然还有很多人没有升级,但如果没有Edge,我们现在已经有大约85%的支持率)。

#35 @亚当西尔弗斯坦
16个月以前

  • 焦点 性能 持续性补充
  • 关键词 需求-单元测试补充

#36 @尼克帕兹
16个月以前

@我正在做一些PR的本地测试,特别是看看Imagemagick/GD是如何处理HDR avifs的。您使用的是什么版本的Imagemagick?我仍在努力让7.1.1在我的本地设置上运行。
到目前为止,我只能在6.9.11上进行测试,它适用于常规的avif,即生成缩略图和图像编辑(裁剪/缩放)。然而,HDR avif失去了它们的“HDR”特性(我怀疑是这样的),而且时髦的颜色配置文件也无法计算,就像这个网站上的Hato avif版本:https://aomediacodec.github.io/av1-avif/testFiles/Link-U/

无论如何,我希望得到一个更新版本的Imagemagick来再次测试它,也希望得到GD库,尽管我担心同样的结果。

我会尽快报告更多细节。

更新:我成功地用最新版本的Imagemagick重新编译了本地docker容器php版本,并运行了相同的测试。不幸的是,一切都没有改变。虽然avif处理工作正常,但“HDR”图像将因任何图像操作而失去其“HDR-ness”,即缩略图生成、缩放、裁剪等。如果没有Imagemagick的自定义构建,我不确定这是否可以解决,如果可能的话。我们知道Imagemagick是否能够在WordPress/php之外正确处理HDR图像吗@也许是格雷本斯?

我将尝试使用最新的支持avif的GD库重新编译并再次测试,尽管我不希望GD在这里胜过Imagemagik,但仍然值得测试。

上次编辑时间16个月前通过尼克帕兹(以前的)(差异)

#37 @贾维尔卡萨雷斯
15个月以前

对于使用Debian/Ubuntu的用户。。。

检查https://github.com/SoftCreatR/imei

git克隆https://github.com/SoftCreatR/imei&&cd imei&&bash imei.sh
  • 编译最新的ImageMagick版本
  • 安装ImageMagick或更新以前安装的ImageMakick包(通过IMEI)
  • 额外的HEIF/HEIC/HEIX支持
  • 附加AVIF支持
  • 附加JPEG XL支持

#39 @格雷格本茨
15个月以前

@JavierCasares FYI表示,caniuse并没有反映MS Edge Canary,它在几个月前增加了对AVIF的支持。除非它没有最终发布(考虑到AVIF库的稳定性,这似乎不太可能),否则我假设MS Edge将在9月前支持AVIF(不一定是HDR AVIF)。在这一点上,剩下的差距基本上只是那些没有更新浏览器的人。

Safari 17还增加了对HEIC和JXL(JPEG XL)的支持:https://www.macgoughts.com/2023/06/28/apple-releases-safari-technology-preview-173/然而,AVIF显然是一种方式。这些其他格式似乎遥不可及(如果它们能流行起来的话——谷歌放弃了Chrome Canary对JXL的支持)。

#40 @格雷本斯
15个月以前

@我还没有用ImageMagick测试HDR AVIF。如果您能够确认数据丢失,请提出新问题:https://github.com/ImageMagick/ImageMagick/问题

当你说它失去了HDR特性时,你知道具体失去了什么吗?它是否将HLG/PQ内容转换并剪辑为gamma EOTF?
如果更容易的话,请随时通过电子邮件向我喊叫:https://gregbenzphotography.com/contact网站/

#41 @格雷本斯
15个月以前

@除了HDR AVIF之外,AVIF和JPG的“增益图”也是ImageMagick等工具支持的关键技术。这个新规范通过二级(辅助)嵌入图像和一些元数据增强了现有的文件格式(JPG、AVIF、JXL)。这允许单个文件在SDR或HDR显示器上以最佳方式渲染,并改进了普通HDR屏幕的色调映射(例如在600 nits HDR显示器中查看1600 nits主控图像)。

Adobe发布了规范和示例图像,Chrome Canary(桌面版和Android 14下)支持JPG增益映射(在dev标志下)。结果令人印象深刻。这绝对是未来。带有SDR增益图的JPG向后兼容所有查看器(如果您的设置不支持HDR或不理解增益图,您只需看到SDR版本)。然而,ImageMagick等服务的图像再处理需要支持它,否则新的输出将变成SDR-JPG。带有增益图的AVIF是理想的解决方案(将尺寸缩小30%,以帮助抵消辅助图像的尺寸),希望不会太落后于JPG增益图支持。

我提出了一个问题,要求在ImageMagick中支持增益图:https://github.com/ImageMagick/ImageMagik/issues/6377

从WordPress的角度来看,我认为我们只需要WP来允许上传AVIF,ImageMagick可以处理HDR AVIF并获得AVIF或JPG的地图。这似乎更适合ImageMagick的优势/重点,两者的支持是不必要的(尽管这是一个很好的功能,可以考虑长期的核心支持)。

#42 @尼克帕兹
15个月以前

@格雷本斯

当你说它失去了HDR特性时,你知道具体失去了什么吗?它是否将HLG/PQ内容转换并剪辑为gamma EOTF?

我不知道这意味着什么,哈哈,但我可以分享这些图片。我从你的网站上借用了大清真寺的图片,并在媒体库中将其缩小了一个像素。原始图像和缩放图像都位于此下拉框链接中:https://www.dropbox.com/sh/7sxcblgz3fuzvu0/AAAwjXttTkAUbVn5llrUnqZ9a?dl=0

也许你可以看看,让我知道。

我认为我们看到的是,为了成功地处理带有这些额外“层”信息(增益图、alpha通道等)的图像,库(IM&GD)需要进行一些弥补。即使这些库能够处理其中的一部分或一个子集,托管公司仍需要编译这些库以包含支持。例如,我联系了Pressable的系统人员,要求他们编译PHP8.2版本中包含的GD库,以便能够处理avif,因为“普通”版本不支持它。

我不太了解core如何处理图像处理过程,不知道代码是否必须更改才能跟上IM或GD库的更改,但我猜想这取决于库来“处理”细节。

话虽如此,@adamsilverstein的PR对“SDR”AVIF的效果很好,在图像质量和大小方面比webp有了飞跃,应该尽快合并到核心中,imo。这将允许您在站点上仍然使用“HDR”图像,但你必须小心,始终在内容中显示原始图像(而不是让WordPress或你的主题使用缩略图/生成的大小)。有不同的方法可以做到这一点。同样,您也不希望您的图像CDN服务于被操纵的版本。

编辑:
关于浏览器支持的快速评论。虽然犬只对AVIF显示出良好的覆盖率,但这些主要是针对“SDR”AVIF的。例如,Safari显示出支持,但HDR的显示效果非常差。不久前,HDR根本不会显示。因此,如果您确实计划在站点上使用HDR AVIF,则需要找出要显示的备用图像,或者对没有显示任何内容或预期图像的糟糕版本感到满意。

上次编辑时间15个月前通过尼克帕兹(以前的)(差异)

#43 @格雷本斯
15个月以前

@nickpagz图像的转换版本显示为SDR,元数据有一些显著的变化:

  • “Color Primaries”是SMPTE EG 432-1型然后脱光衣服。我相信这是P3-D65,对所有人来说都是一个重要问题。
  • “传输特征”是SMPTE ST 2084,ITU BT.2100 PQ然后脱光衣服。这是一个主要问题,因为PQ是HDR EOTF。
  • “Seq Level Idx 0”从1更改为13(我不知道这个数据是什么,也不知道它是否有任何相关性)。
  • “图像像素深度”为10 10 10,被剔除。我不知道坏图像是10位还是现在是8位,但这似乎是一个潜在的问题。

如果不进一步挖掘,我不确定像素是否被修改了,或者所有的问题是否都存在于元数据中。如果您需要进一步隔离为什么它是一个糟糕的转换,您可能可以使用EXIFTOOL或AVIFENC之类的东西来尝试更改元数据。

我的这个源图像没有使用增益图,这里的问题是与标准HDR AVIF转换。

同意,AVIF的犬类页面对HDR没有帮助。我提出了跟踪HDR AVIF和HDR JPEG(增益图,也称为Ultra HDR JPG)的问题:
https://github.com/Fyrd/caniuse/issues/6504
https://github.com/Fyrd/caniuse/issues/6759

Safari的色调映射在这个阶段不如Chrome,据我所知,它不支持HDR(在当前的Tech Preview 173中似乎不起作用,除非我缺少一些dev标志来启用它)。自去年以来,Chrome本身已经有了很大改进(增加了对HDR元数据的支持,改进了饱和HDR颜色的渲染,增加了对Canary中JPG增益贴图的支持,等等)。

#44 答复: 38 @jb510型
15个月以前

很高兴看到有人谈论HDR。AVIF动画可能还需要通过讨论。我个人不清楚ImageMagick是否正确支持AVIF动画。

最后,有一点需要注意:
回复贾维尔卡萨雷斯:

此外,FYI(2023-06-24)
[...]
视频格式

我知道视频在这里可能有点离题,但如果将来有人引用这些统计数据,值得注意的是WebM是一个容器(如.mp4、.mkv、.avi等),而不是此处列出的其他编解码器。WebM通常包含VP8或VP9编码视频,但现在也可以包含AV1编码视频。

上次编辑时间15个月前通过jb510型(以前的)(差异)

#45 @亚当西尔弗斯坦
12个月以前

我假设MS Edge将在9月之前支持AVIF(不一定是HDR AVIF)。

@据我所知,格雷格本斯没有从埃奇出发,这仍然是在旗帜后面,只有在加那利,对吗?

#46 @格雷本斯
12个月以前

@adamsilverstein MS Edge支持HDR AVIF,但在我上次检查时仍然处于开发标志之下。

Edge、Chrome、Brave和Opera现在都默认支持HDR JPG增益地图(大多数都在Android 14上)。看起来太棒了。现在支持率相当高。很明显,这是现在共享HDR图像的方式,而HDR AVIF增益地图在支持较小文件和更高质量的情况下肯定是一种方式。

Chrome支持AVIF,并在dev标志下提供增益映射。我认为,当准备就绪时,它自然会很快进入其他Chrome衍生浏览器。

#47 @格雷本斯
12个月以前

Adobe刚刚发布了对Lightroom每个版本的广泛HDR支持,包括从任何设备(Mac、PC、Android、iPad和iPhone)导出AVIF(HDR和SDR)的功能。https://gregbenzphotography.com/hdr-images/lightroom-adds-hdr-edit-and-export/

HDR JPG增益图也支持导出。

HDR图像可以很容易地从LR在美观的图库中共享。当HDR浏览器查看页面时,AVIF用于传递图像(否则不支持HDR/AVIF的JPG)。以下是一个示例(单击以查看HDR AVIF版本的大图像):https://lightroom.adobe.com/shares/99ccfca214f943e5a2fcdb76802676da

#48 @亚当西尔弗斯坦
11个月以前

#59686被标记为副本。

这张票是在采购编号5584WordPress/WordPress-develop开发通过@亚当西尔弗斯坦.


11个月以前
#49

当LibGD支持时,启用对AVIF图像的支持。

在此更改之前,WordPress没有正确检测到PHP8.1及更高版本中提供的AVIF GD支持。

Trac票:https://core.trac.wordpress.org/tickt/51228

#50 @亚当西尔弗斯坦
11个月以前

51228-avif-compat-php.diff扩展格式支持检测WP_图像编辑器GD::支持_mime_type包括航空工业联合会这是PHP 8.1中添加的。

当PHP的GD支持AVIF图像时,这将启用它的支持。

在此更改之前,WordPress没有正确检测到PHP8.1及更高版本中提供的AVIF GD支持。

#51 @亚当西尔弗斯坦
11个月以前

51228-avif-compat-ph.2.diff兼容扩展GD supports_mime_type测试以包括WebP和AVIF

也在PR中运行测试-https://github.com/WordPress/WordPress-develop/pull/5584

我将把这部分支持分成一个单独的Trac标签,然后从整个AVIF支持补丁中删除。

#52 @格雷本斯
11个月以前

@adamsilverstein如果WP使用的是支持它的ImageMagick版本,即使PHP<8.1,是否启用了WP媒体库支持?我不确定我是否理解这两种途径,但似乎两者都支持SDR AVIF,对吗?

#53 @亚当西尔弗斯坦
11个月以前

@adamsilverstein如果WP使用的是支持它的ImageMagick版本,即使PHP<8.1,是否启用了WP媒体库支持?我不确定我是否理解这两种途径,但似乎两者都支持SDR AVIF,对吗?

总的来说,是的,应该检测到Imagick AVIF支持,但上传或图像生成是否能够正常工作,以及这些图像是否支持HDR,这不是我能够仔细测试的。添加完整的支持需要对https://github.com/WordPress/WordPress-develop/pull/4612

上次编辑时间8个月前通过亚当西尔弗斯坦(以前的)(差异)

#54 @格雷本斯
11个月以前

@adamsilverstein听起来很鼓舞人心,这可能是我们在WordPress上所能要求的全部(支持ImageMagick中的AVIF,并依靠IM正确输出文件)。

测试HDR输出的一种相当可靠的方法是使用Adobe的Gain Map Demo App(详细信息和我视频后面的演示,请点击此处:https://gregbenzphotography.com/hdr-images/jpg-hdr-gain-maps-in-adobe-camera-raw/). 右栏将有测试,说明图像是否被检测为HDR。这对于JPG增益图和标准HDR AVIF(当然对于Adobe编码的任何东西)都应该是健壮的。在Chrome中查看并与源代码进行比较也是一个很好的测试,因为它对各种编码为JPG/AVIF的HDR格式有强大的支持。

#55 @潘杜伊南
9个月以前

Microsoft Edge 121正式支持AVIF格式,将于2024年1月发布。

https://winaero.com/microsoft-edge-121-finally-enables-avif-support-out-of-the-box/amp/

#56 @亚当西尔弗斯坦
9个月以前

谢谢@phanduynam!我在发行说明中也注意到了这一点,Microsoft在版本1.121中添加了AVIF支持,发布数据为2024年1月7日-请参阅https://learn.microsoft.com/en-us/deployedge/microsoft-edge-relnote-beta-channel#功能-更新

我还确认这是在Edge(Canary)中手动打开测试AVIF图像,一切都如预期。。。

#57 @潘迪南
9个月以前

那么WordPress什么时候支持Avif图像格式?我希望WordPress 6.5版能支持它

这张票是在松弛(Slack)在亚当·西尔弗斯坦的《核心表现》中。查看日志.


9个月以前

这张票是在松弛(Slack)在《core-media》中,作者是亚当·西尔弗斯坦。查看日志.


9个月以前

#60 随访: @亚当西尔弗斯坦
9个月以前

那么WordPress什么时候支持Avif图像格式?我希望WordPress 6.5版支持它

@phanduynam是的,6.5或可能是6.6,这取决于具有AVIF支持的Edge稳定版本和我们的beta版本的发布时间——提交新功能的截止日期。

与此同时,我正在更新公关,我们需要进行更多测试,以确保AVIF按预期工作。

我在PR中添加了单元测试以及一些测试引用AVIF,这些都暴露了我在PR中解决的特定文件类型(透明和动画AVIF)的一些兼容性问题。这些测试与WebP测试涵盖的要点相同。

我注意到我们的wp_get_avif信息helper函数没有检测AVIF类型(大小很好,这是关键)。我认为我们可以使用用于mime类型检测的“幻数”方法来检测旧PHP版本上的AVIF文件,但我不确定这是否可靠,以及我们是否真的需要它。

#61 @亚当西尔弗斯坦
8个月以前

51228.迪夫包括PR的所有最新更改,并包括测试、更新的mime检测,还放弃了对输出无损AVIF图像的支持,因为目前我们还没有一种可靠的方法来检测无损AVIF上传,就像我们使用WebP一样。

@亚当西尔弗斯坦对发表了评论采购订单号4612:


8个月以前
#62

@mukeshpanchal27-注意,测试似乎开始了`49f4278 `(#4612).这些变量用于下一行,其中return compact(“宽度”、“高度”、“类型”);使用奇怪的语法引用它们。

无论如何,该函数的结构很差,返回结构不一致;它已经在函数的后面设置了一个默认返回值,所以我将其上移,当mime类型不在avif中时返回它`b492dbf`(#4612)

#63 答复: 60 @萨米亚姆诺
8个月以前

边缘121是1月25日发布。我假设现在可以达到6.5。

回复亚当西尔弗斯坦:

那么WordPress什么时候支持Avif图像格式?我希望WordPress 6.5版支持它

@phanduynam是的,6.5或可能是6.6,这取决于具有AVIF支持的Edge稳定版本和我们的beta版本的发布时间——提交新功能的截止日期。

#64 @瑞士风格
8个月以前

  • 里程碑已从更改未来版本6.5

让我们努力实现!:)

这张票是在松弛(Slack)在《core-media》中,作者是亚当·西尔弗斯坦。查看日志.


8个月以前

#66 @亚当西尔弗斯坦
8个月以前

  • 关键词 has-unit-测试 犯罪补充;需求-单元测试远离的

@亚当西尔弗斯坦对发表了评论采购订单号4612:


8个月以前
#67

谢谢@adamsilverstein的更新。我留下了一些挑剔的反馈和建议。除此之外,我觉得还不错。

谢谢你的仔细审查和建议,我已经接受了你的建议。

#68 @亚当西尔弗斯坦
8个月以前

  • 关键词 has-testing-info(有测试信息)补充

测试说明

  • 验证WordPress安装是否支持AVIF--检查工具->站点运行状况->信息选项卡->(展开)媒体处理部分。GD或Imagick必须列出“AVIF”。
  • 将AVIF图像上载到帖子或媒体库。中提供了一些测试图像libavif存储库.
  • 测试媒体库和编辑器中的裁剪和旋转等功能
  • 测试全部查看帖子支持的浏览器(Browserstack将非常适合)
  • 使用测试图像编辑器输出格式过滤器为上传的JPEG输出AVIF,注意有/无过滤器的JPEG/AVIF文件大小。
上次编辑时间8个月前通过亚当西尔弗斯坦(以前的)(差异)

这张票是在松弛(Slack)在#核心性能由adamsilverstein。查看日志.


8个月以前

这张票是在松弛(Slack)mukeshpanchal27的核心表现。查看日志.


8个月以前

#71 @瑞士风格
8个月以前

看看这些测试说明,我觉得这将是一个很好的机会,可以为所有媒体到核心的东西添加一些不错的端到端测试。

#72 @亚当西尔弗斯坦
8个月以前

看着这些测试说明,我觉得这是一个很好的机会,可以为所有媒体核心添加一些不错的端到端测试。

好主意!也就是说,我仍将致力于此,以便进行更广泛的测试;PR确实包括与其他图像格式类似的广泛单元测试。让我们在单独的票据中添加媒体流的E2E测试。

#73 @亚当西尔弗斯坦
8个月以前

51228.2.差异包含来自PR的所有最终更改,并根据主干进行更新。

#74 @约宾
8个月以前

不是拦截器,但我想知道src/wp-includes/class-avif-info.php应该以wp-includes/compact.php的形式有条件地加载,因为它与8.2以下的php版本兼容

#75 @亚当西尔弗斯坦
8个月以前

  • 分辨率设置为固定的
  • 状态已从更改分配关闭

57524:

媒体:启用AVIF支持。

当服务器支持时,添加对上传、编辑和保存AVIF图像的支持。

将“image/avif”添加到支持的mime类型。正确识别AVIF图像和大小,即使PHP不支持AVIF。调整上传的AVIF文件的大小(如果支持)并用于前端标记。

道具:亚当·西尔弗斯坦(adamsilverstein)、卢克·弗罗斯特(Lukefiretost)、艾什拉詹斯(ayeshrajans)、纳夫乔特辛格(navjotjsingh)、暴君(Tyrannous)、jb510、格雷本斯(gregbenz)、尼克帕兹(nickpagz)、贾维尔卡萨雷斯(JavierCasares)。
修复#51228.

#76 @亚当西尔弗斯坦
8个月以前

  • 关键词 需求-开发说明补充

#77 @亚当西尔弗斯坦
8个月以前

不是一个拦截器,但我想知道src/wp-includes/class-avif-info.php是否应该以wp-incontudes/compact.php的形式有条件地加载,因为它是关于php版本8.2以下的兼容性

在提交之前错过了这一点,但我不这么认为,因为即使是PHP8.2或8.3*也可能*缺乏AVIF支持(例如,我自己的8.2/3本地MAMP副本不支持它)。我相信在(Apache?)构建期间添加了一个标志来启用支持。因此,这更多的是一种功能检查,当PHP不返回大小时,我们会回到帮助程序(当它无法识别文件时,我们会回到mime检测)。

#78 @亚当西尔弗斯坦
8个月以前

57525:

媒体:修复AVIF测试。

后续行动57524兰特。为单元测试正确添加AVIF图像。

修复#51228.

#80 @史蒂文林克斯
8个月以前

  • 关键词 现场附加指南补充

这张票是在松弛(Slack)乔麦吉尔的核心表现。查看日志.


7个月以前

#82 @亚当西尔弗斯坦
7个月以前

  • 关键词 has-dev-注释补充;需求-开发说明远离的

#83 @新2k23
7个月以前

如果我在媒体中上传avif文件,则不会创建缩略图。将wp 6.5 beta和php 8.3与gdlib 2.3.3一起使用

imagecreatefromavif无法创建图像

https://core.trac.wordpress.org/ticket/60628

上次编辑时间7个月前通过新2k23(以前的)(差异)

#84 @尼克帕兹
7个月以前

您是否确保服务器php和gdlib在编译时支持“avif”?最新版本并不一定意味着它具有avif支持。摘自Adam的帖子:

WordPress中的AVIF依赖于web服务器的图像处理库中的支持(WordPress内置了对图像处理的Imagick和LibGD的支持)。您可以在wp-admin中检查AVIF支持,方法是访问工具->站点运行状况,单击“信息”选项卡并展开“媒体处理”部分,最后在支持的格式列表中查找“AVIF”。

#85 @新2k23
7个月以前

@nickpagz请检查此图片

https://share.zight.com/9Zu4o5qp

它是这么说的。

#86 @亚当西尔弗斯坦
7个月以前

它是这么说的。

@neo2k23感谢测试和报告-几个问题

  • 你还启用了Imagick支持吗(它会显示在你的屏幕截图旁边)?如果是这样,可能是使用了错误的编辑器。
  • 另一种可能性是图像没有被正确识别。你试过一些图片吗?
  • 你在哪里上传,在媒体库还是在编辑器中?

#87 @暴君
7个月以前

您好,@adamsilverstein,@neo2k23编辑了他的评论,并添加了一张描述问题的Trac罚单:https://core.trac.wordpress.org/ticket/60628.

继续下去有意义吗?TL;博士:AVIF支持在他的配置中似乎是一个(已知?)误报。

#88 @新2k23
7个月以前

@亚当·西尔弗斯坦我尝试了很多不同的图像。我正在媒体库中上传。

@暴君,我将在本周尝试ubuntu 22.04,并随时与您联系。

cpanel上还有一个已知问题。未修复:https://features.cpanel.net/topic/2319-php-8-1-gd-avif-support(https://features.cpanel.net/topic/2319-php-8-1-gd-avif-support支持)

关于使用avif支持重新编译。我没有成功。我收到一条消息,包“libavif-dev”没有安装候选ubuntu 20.04服务器

在stackoverflow上发现的:https://stackoverflow.com/questions/70398133/php8-1-how-do-i-get-imageavif-to-work/78052701#78052701

感谢大家的反馈。当我有一个ubuntu服务器22.04启动并运行后再联系您

#89 @新2k23
7个月以前

大家好

我可以确认安装ubuntu 22.04后问题已解决

谢谢你给我指明了正确的方向。真的很感激。

祝你有美好的一天

#90 @亚当西尔弗斯坦
7个月以前

我可以确认安装ubuntu 22.04后问题已解决

很高兴听到这个问题为您@neo2k23解决了,希望使用AVIF一切顺利!

#91 @潘迪南
6个月以前

  • 组件已从更改媒体插件
  • 类型已从更改增强功能请求
  • 版本设置为6.5

WordPress 6.5目前支持Avif图像格式,因此请更新性能实验室插件以支持此图像格式。

这张票是在松弛(Slack)在潘迪南的《核心表现》中。查看日志.


6个月以前

#93 @瑞士风格
6个月以前

  • 组件已从更改插件媒体
  • 类型已从更改功能请求增强
  • 版本 6.5删除
注:请参阅TracTickets公司有关使用的帮助门票。