sitegeist/image-jack

图像优化的万能工具。同时介绍了下一代图像格式(next-gen-image-formats)的使用。

安装数: 17,641

依赖: 1

建议者: 0

安全: 0

星标: 1

关注者: 4

分叉: 1

开放问题: 2

类型:typo3-cms-extension

0.10.0 2024-03-11 12:56 UTC

This package is auto-updated.

Last update: 2024-09-16 07:27:01 UTC


README

图像优化的万能工具。同时介绍了下一代图像格式(next-gen-image-formats)的使用。

它做了什么?

在处理过程中增加了优化现有jpg、gif和png文件的可能性。此外,它还可以为每个处理过的图像添加webP副本。

安装

使用composer添加扩展

composer require "sitegeist/image-jack"
  • 通过维护模块完全清除所有处理过的图像
  • 清除缓存
  • 更改服务器配置(见下文)或激活回退驱动xclass

配置

Web服务器

为了提供webP图像,需要正确配置Web服务器。以下为Apache (.htaccess) 的示例

RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{REQUEST_FILENAME} (.*)\.(png|gif|jpe?g)$
RewriteCond %{REQUEST_FILENAME}\.webp -f
RewriteRule ^ %{REQUEST_FILENAME}\.webp [L,T=image/webp]

<IfModule mod_headers.c>
    <FilesMatch "\.(png|gif|jpe?g)$">
        Header append Vary Accept
    </FilesMatch>
</IfModule>

由于我们创建的webP图像是副本(保持原始图像不变),此配置在客户端支持的情况下提供webP图像。否则,提供原始图像。

存储API(beta版)

作为回退解决方案(例如,对于远程存储),在扩展设置中有一个选项可以激活存储驱动程序的xclass。对于每个需要扩展的存储驱动程序都需要有一个类。LocalDriver和AmazonS3Driver已经可用。为了避免缓存问题(第一个客户端定义提供的服务器图像格式),将客户端接受的头信息中的图像格式添加到页面缓存标识符中。如果启用此选项,则不再需要htaccess修改(见Web服务器)。

调度器/定时任务

要启动图像处理,有一个命令可用

jack:process --limit=20

图像逐个处理。通过更改限制,可以定义每次运行中要处理的图像数量。

需求

webp

对于webp转换,需要一个安装的Imagemagick或GraphicsMagick版本,并且需要支持webp。

您可以使用以下命令进行检查

gm -version | grep -i webp

convert -version | grep -i webp

当使用gd时,需要webP支持。

jpg优化

为了优化jpg文件,需要二进制文件"jpegoptim"。您可以使用以下命令进行检查

which jpegoptim

(应返回路径)

如果缺少它,可以通过以下命令安装,例如

apt install jpegoptim

png/gif优化

为了优化png和gif文件,需要二进制文件"optipng"。您可以使用以下命令进行检查

which optipng

(应返回路径)

如果缺少它,可以通过以下命令安装,例如

apt install optipng

扩展设置

通用

useLiveProcessing

如果启用,图像将使用LocalImageProcessor在请求时实时处理。这可能导致首次请求时负载很高和非常长的加载时间(取决于页面上的图像数量)。建议使用默认设置并使用可用的命令进行处理。

useFallbackDriver (beta版)

如果启用,将使用xclass扩展LocalDriver和AmazonS3Driver的getPublicUrl函数。如果htaccess解决方案不起作用,例如对于远程存储,可以使用此功能。有关更多详细信息,请参阅存储API(beta版)

WebP

active

(取消)激活转换。

converter

应使用哪种方式来转换图像:Imagemagick/GraphicsMagick、GD或外部二进制文件

options

根据转换类型,此字段可用于不同的目的

  • IM/GM:将直接传递给二进制的选项添加
  • GD:新图像的质量(1 - 100)
  • 外部:要使用的二进制的完整路径。您可以使用%s表示源图像和目标图像。

Avif

active

(取消)激活转换。

converter

应使用哪种方式来转换图像:Imagemagick/GraphicsMagick、GD或外部二进制文件

options

根据转换类型,此字段可用于不同的目的

  • IM/GM:将直接传递给二进制的选项添加
  • GD:新图像的质量(1 - 100)
  • 外部:要使用的二进制的完整路径。您可以使用%s表示源图像和目标图像。

Jpeg

active

(启用/禁用)优化。

路径

jpegoptim二进制文件的路径。请使用完整路径,因为如果不使用完整路径,is_executable将无法正确工作。

Png

active

(启用/禁用)优化。

路径

optipng二进制文件的路径。请使用完整路径,因为如果不使用完整路径,is_executable将无法正确工作。

日志记录

仅激活应写入日志文件的级别。

自定义优化器/转换模板

自定义模板应扩展AbstractTemplate并实现TemplateInterface。只需使用现有的模板之一作为起点。

自定义模板可以像这样注册

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['image_jack']['templates']['myCustomTemplate'] = \Vendor\Extension\Templates\CustomTemplate::class;

Jack将自动检测并运行给定图像类型的新模板,如果它可用。

故障排除

日志被写入到var/log/typo3_image_jack_*.log

扩展设置提供了决定日志记录应有多详细的可能性。

特别感谢

本扩展受到了plan2net的webp扩展的启发。

作者与赞助商

此包的开发和公共发布得到了我们雇主https://sitegeist.de的慷慨赞助。