s1syphos/kirby-webp

此包已被放弃且不再维护。未建议替代包。

为 Kirby 生成 WebP 图像

安装: 35

依赖项: 0

建议者: 0

安全: 0

星级: 32

关注者: 4

分支: 4

公开问题: 0

类型:kirby-plugin

0.5.0 2018-03-22 14:52 UTC

This package is auto-updated.

Last update: 2021-12-19 04:16:05 UTC


README

Release License Issues

此插件会在您上传的 JPG 和 PNG 图像旁边生成 WebP 图像,所以您无需自己操作。

目录

它有什么用?

绝对……更小的图像尺寸

WebP 是一种用于网页上各种摄影、透明和图形图像的损失压缩和无损压缩方法。损失压缩的程度可以调整,因此用户可以在文件大小和图像质量之间进行权衡。WebP 通常比 JPEG 和 JPEG 2000 平均压缩率高 30%,而不会损失图像质量(参见 比较研究)。

Google 开发者

WebP 图像的当前 浏览器支持 挺不错的(Chrome、Opera 以及大多数移动浏览器),尽管很大程度上取决于您的目标地区(从北美(60%)和欧洲(65%)到非洲和南美洲的 80% 以上)。

有关更多信息,包括批评,请参阅其 维基百科文章。话虽如此,另一种针对替代 JPEG 的有趣方法是 Fabrice Bellard 的 "更好的便携式图形"(BPG)格式。

入门

使用以下方法之一安装并使用 kirby-webp

Composer

composer require S1SYPHOS/kirby-webp:dev-composer

Git 子模块

如果您熟悉 Git,您可以将其作为 子模块 下载此插件

git submodule add https://github.com/S1SYPHOS/kirby-webp.git site/plugins/kirby-webp

克隆或下载

  1. 克隆下载 此存储库。
  2. 解压缩/将文件夹移动到 site/plugins

激活插件

在您的 config.php 中使用以下行激活插件

c::set('plugin.kirby-webp', true);

配置

上传一些图像后,您现在正式准备好提供它们新生成的 WebP 版本。

Apache

如果您使用 Apache 作为您的 Web 服务器,请将以下行添加到您的 .htaccess

<IfModule mod_rewrite.c>
  RewriteEngine On

  # Checking for WebP browser support ..
  RewriteCond %{HTTP_ACCEPT} image/webp

  # .. and if there's a WebP version for the requested image
  RewriteCond %{DOCUMENT_ROOT}/$1.webp -f

  # Well, then go for it & serve WebP instead
  RewriteRule (.+)\.(jpe?g|png)$ $1.webp [T=image/webp,E=accept:1]
</IfModule>

<IfModule mod_headers.c>
  Header append Vary Accept env=REDIRECT_accept
</IfModule>

<IfModule mod_mime.c>
  AddType image/webp .webp
</IfModule>

NGINX

如果您正在使用 NGINX 作为您的 web 服务器,请在您的虚拟主机设置中添加以下几行(更多信息请参阅 此处此处

// First, make sure that NGINX' `mime.types` file includes 'image/webp webp'
include /etc/nginx/mime.types;

// Checking if HTTP's `ACCEPT` header contains 'webp'
map $http_accept $webp_suffix {
  default "";
  "~*webp" ".webp";
}

server {
  // ...

  // Checking if there's a WebP version for the requested image ..
  location ~* ^.+\.(jpe?g|png)$ {
    add_header Vary Accept;
    // .. and if so, serving it
    try_files $1$webp_ext $uri =404;
  }
}

选项

kirby-webp 选项修改为满足您的需求

选项 类型 默认值 描述
plugin.kirby-webp.hooks 数组 ['upload'] 包含所有应用于 WebP 生成 panel.file.*钩子(允许的值有 uploadupdaterenamereplace)。
plugin.kirby-webp.quality 整数 90 定义 WebP 图像质量(范围从 0 到 100)。
plugin.kirby-webp.stripMetadata 布尔值 true 可选地启用/禁用将 JPEG 元数据传输到 WebP 图像。
plugin.kirby-webp.convertedImage 布尔值 true 可选地启用/禁用输出转换后的图像(false 将导致输出有关转换过程文本信息)。
plugin.kirby-webp.serveOriginalOnFail 布尔值 true 定义在所有转换器失败时的行为 - 默认情况下,将提供原始图像,而 false 将生成带有错误信息的图像。
plugin.kirby-webp.converters 数组 ['gd', 'cwebp'] 定义所有支持转换器的期望执行顺序(允许的值有 imagickcwebpgdewww)。请注意,这仅更改它们的顺序,但不会删除任何一个。

故障排除

尽管指出发生了“意外错误”,但在重命名/更新图像后生成的 WebP 仍然工作 - replace 完全不起作用 .. 欢迎提交 PR 🍾

因此,默认情况下只包含 upload。如果您想进一步调查这个问题,或者不太在意错误,请在您的 config.php 中使用 c::set('plugin.webp.actions', ['upload', 'update', 'rename', 'replace']);

致谢 / 许可证

kirby-webp 基于 Bjørn Rosell 的 PHP 库 webp-convert。它受 MIT 许可证 的约束,但在生产环境中使用 Kirby 需要您 购买许可证。您准备好下一步了吗?

特别感谢

我想感谢所有制作出色软件的人 - 你们都很棒。另外,我总是感谢反馈和错误报告 :)