moc / imageoptimizer
流包,用于优化生成的缩略图图像(jpg、png、gif、svg)以供网页展示。
Requires
- neos/media: >=5
README
简介
Neos CMS / Flow 框架包,用于优化生成的缩略图图像(jpg、png、gif、svg 等)以供网页展示。
由于总是为缩略图创建副本,因此原始文件永远不会受到影响。
渲染过程中非阻塞(异步)优化。
使用 jpegtran、optipng、gifsicle 和 svgo 或可定制的替代品进行优化。
应适用于 Linux、FreeBSD、OSX、SunOS 及 Windows(目前仅测试了 Linux 和 FreeBSD)。
兼容 Neos 1.x - 5.x / Flow 1.x - 6.x
仅支持本地文件系统(暂不支持 CDN)(见 #10)
安装
需要 npm(node.js)才能正常工作,尽管也可以不安装 npm 手动安装二进制文件。
composer require "moc/imageoptimizer" "~4.0"
确保已全局安装图像处理库 jpegtran
(JPG)、optipng
(PNG)、gifsicle
(GIF)和 svgo
(SVG)。如果需要,可以跳过库,但请确保禁用那些 mimetypes。
或者可以使用 npm
安装它们
# Globally
npm install -g jpegtran-bin optipng-bin gifsicle svgo
# Locally
npm install --prefix Packages/Application/MOC.ImageOptimizer/Resources/Private/Library
配置
使用 Settings
配置,可以调整多个选项。
可以禁用特定文件格式的优化。
此外,可以根据优化库调整优化级别(png & gif)、渐进(jpg)、美观(svg)等选项。
可以配置全局可用的二进制文件,或针对特定格式。
启用设置 MOC.ImageOptimizer.useGlobalBinary
并在 MOC.ImageOptimizer.globalBinaryPath
中配置路径。
使用替代库进行优化
您可以替换预配置的库以使用替代库。
示例
将以下内容添加到您的 Settings
以使用 jpegoptim
而不是 jpegtran
MOC:
ImageOptimizer:
formats:
'image/jpeg':
enabled: true
library: 'jpegoptim'
binaryPath: 'jpegoptim-bin/vendor/jpegoptim'
arguments: "${'--strip-all --max=' + quality + ' ' + (progressive ? '--all-progressive ' : '') + '-o ' + file}"
parameters:
progressive: true # whether or not to serve progressive jpgs
quality: 80 # quality level (1-100)
在此操作中,您必须自行提供必要的库,因为它在上面的安装过程中并未包含。
使用
- 清除缩略图以生成新的自动优化的缩略图。
./flow media:clearthumbnails
- 查看系统日志进行调试和错误输出。