我们阅读了每一条反馈,并非常认真地对待您的意见。
要查看所有可用的限定符,请参阅我们的文档.
对这个项目有疑问吗?注册一个免费的GitHub帐户以打开一个问题,并联系其维护者和社区。
点击“注册GitHub”,即表示您同意我们的服务条款和隐私声明。我们偶尔会向您发送与帐户相关的电子邮件。
已经在GitHub上了?登录到您的帐户
这是之前在#55106并在媒体实验已经(参见示例此博客帖子有关后者的概述)。我相信媒体实验的核心逻辑是实现这一功能的良好基础,而古腾堡正是进一步开发这一功能并将其带给更多人的合适之地。
WordPress中当前的图像处理依赖于服务器端资源和较旧的图像库,导致潜在的性能问题,并且对现代图像格式(如AVIF)的支持有限。这导致用户体验不佳,尤其是在资源密集型任务中,如调整图像大小和压缩图像。此外,缺少像MozJPEG这样的现代压缩工具进一步阻碍了优化工作。
客户端媒体处理通过利用浏览器的功能来处理图像大小调整和压缩等任务,提供了一种解决方案。这种方法不仅缓解了服务器资源的压力,还可以使用更先进的图像格式和压缩技术,最终提高网站性能和用户体验。通过利用WebAssembly等技术,WordPress可以为新内容和现有内容提供更高效、无缝的媒体处理过程。
考虑到客户端媒体处理解锁的多种可能性,此项目可以分为多个阶段,每个阶段都有其专用的目标和成功标准。例如:
目标
很高兴有
非目标
目标*以多种不同格式生成子尺寸*适用于例如,用于将AVIF与JPEG回退一起使用
基于WASM的图像优化需要SharedArrayBuffer(共享阵列缓冲区)支持,这反过来需要跨原点隔离。在不破坏编辑器其他部分的情况下以稳健的方式实现这一点具有挑战性。目前有一些已知问题在Firefox和Safari中,由于这些浏览器不支持无凭证的iframe嵌入。因此,在编辑器中嵌入预览当前无法工作,直到这些浏览器添加对<iframe无凭证>.
SharedArrayBuffer(共享阵列缓冲区)
无凭证的
<iframe无凭证>
由于存在大量不同的编解码器和编码选项组合,图像压缩本身相当复杂。虽然WordPress中现有的服务器端图像处理已经过多年的验证,但在客户端做任何事情都是一个新领域。将有许多边缘情况需要处理。
对于总体架构设计,现有媒体实验该项目包含一个非常坚实的基础,已经解决了许多具有挑战性的问题,并且可以在此基础上进行建设。
到目前为止,包括WordPress领导层在内,社区的接待都非常积极。显然,人们渴望这种解决方案。
最大的风险是与编辑器的其他部分(插件、嵌入预览)和特定环境的兼容性,因为SharedArrayBuffer(共享阵列缓冲区)。不破坏现有网站非常重要。可以通过广泛的测试、额外的保障措施和文件来减轻风险。缺乏<iframe无凭证>支持并不理想,因为它在某些情况下会降低编辑器UX的性能,但它并没有破坏创作体验,因为存在后备功能。
虽然理论上可以通过其他方法进行图像优化,例如画布API,表示API在不同浏览器之间非常有限。例如,缺少对压缩选项(例如无损或有损)和mime类型(到处都没有AVIF,Safari中没有WebP)的支持。
文本已成功更新,但遇到以下错误:
首先,非常感谢您提供的细节和所有的背景工作!
将HEIC图像转换为网络安全格式
这是在我最近的一次讨论中提出的。
您对集成此功能的努力程度有何看法?我正在浏览媒体实验报告代码我想知道除了你已经探索过的以外,是否还有其他考虑因素。
这将是一个非常棒的功能-很高兴能够尝试一下,或者尝试组织某人来尝试一下😄 如果你认为在这个阶段值得。我会接受你的指导。
谢谢您!
对不起,出了点问题。
我最近听说过类似的讨论:)
很高兴听到大家对这类话题感兴趣。我很高兴你已经浏览了一点媒体实验代码。
如果您只对HEIC转换感兴趣,那么它本身就可以相对容易地实现理论上。请参阅#61861作为示范。
然而与本清单中提到的所有其他内容一样,有一些重要方面需要考虑。例如:
也许最重要的是:libheif-js和基础利比海夫许可证是根据LGPL 3.0版,它与GPL v2不兼容,但与GPL v3兼容。鉴于WordPress是根据GPLv2或更高版本,这意味着最终产品只需要在GPL v3下分发。伊纳尔,但我认为这不会飞。所以这意味着libheif-js需要首先进行评估和测试。有一些库是建立在利巴维夫但我过去没有成功使用过这些。
libheif-js
利比海夫
利巴维夫
(编辑:通过从外部托管脚本加载libheif-js动态链接也许可以,但又不是律师)
➡️ 旁白:由于这个POC PR,我发现这个回购中的当前许可证检查被破坏了😬 我正在修理#61868
底线:
我特意将这个项目分为多个阶段,因为它比表面看起来更复杂。我强烈建议逐步解决这个问题。
很高兴在其他地方单独讨论HEIC。
没有分支或拉请求