octfx / webp
生成图像的 WebP 版本
Requires
- php: >=7.3
- ext-imagick: *
- composer/installers: >=1.0.1
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-19 08:58:24 UTC
README
在文件上传后,此扩展会创建上传图像及其缩略图的 WebP 版本(如果启用,还会创建 Avif 版本)。
需要工作队列正常工作,扩展:PictureHtmlSupport,以及已安装的可用版本 imagick,libwebp (cwebp) 或 gd。
此外,需要设置 $wgHashedUploadDirectory = true;,如果扩展:AWS 激活,则 $wgAWSRepoHashLevels 需要设置为 >0;
当前不支持设置 $wgGenerateThumbnailOnParse = false;。
这是如何工作的?
在上传或文件转换后,会调度一个转换作业,创建原始文件的 webp(如果启用,还会创建 avif)文件版本。
此外,PictureHtmlSupport 扩展在添加缩略图到页面输出时公开一个钩子。
WebP 扩展利用此钩子为每个活动的图像转换器添加一个 <source> 元素。
转换已上传的图像
存在一个维护脚本来转换已上传的图像
php extensions/WebP/maintenance/CreateFromLocalFiles.php # To only convert non-thumbnails run php extensions/WebP/maintenance/CreateFromLocalFiles.php --no-thumbs # To create thumbnails of custom sizes run # This will create two thumbnails with size 1000px and 1250px php extensions/WebP/maintenance/CreateFromLocalFiles.php --thumb-sizes=1000,1250 # To only work on some images run php extensions/WebP/maintenance/CreateFromLocalFiles.php --titles=ImageA.jpg,ImageB.png # To force the creation of already existing images run php extensions/WebP/maintenance/CreateFromLocalFiles.php --overwrite # Only work on page titles matching a prefix # Every page starting with prefix 'Example' will be selected php extensions/WebP/maintenance/CreateFromLocalFiles.php --title-prefix=Example # Only work on page titles matching a file-type # Every page starting with file-type 'png' will be selected # Can be combined with 'title-prefix' php extensions/WebP/maintenance/CreateFromLocalFiles.php --file-type=png
安装
wfLoadExtension( 'WebP' );
配置
启用 Avif
要支持完整功能,您需要安装 Imagick v7,v6.9 也存在多个错误。
或者您可以安装 libavif-bin (>= 0.9.3),它提供 avifenc。请注意,这仍然需要安装 一个 Imagick 版本,因为 avifenc 不能缩放图像。
在启用 Avif 转换器时,请确保它在 webp 转换器之前,否则浏览器将选择 webp 版本。
$wgEnabledTransformers = [ "MediaWiki\\Extension\\WebP\\Transformer\\AvifTransformer", "MediaWiki\\Extension\\WebP\\Transformer\\WebPTransformer" ];
卸载
删除文件夹 images/webp 和 images/thumbs/webp,并移除扩展。
如果 Avif 转换器处于活动状态,请删除 images/avif 和 images/thumbs/avif。