图像处理配置
配置图像处理的对齐锚点、重采样与各格式编码参数。
处理图像时的默认设置如下:
[imaging]
anchor = 'smart'
bgColor = '#ffffff'
resampleFilter = 'box'
[imaging.avif]
compression = 'lossy'
encoderSpeed = 10
hint = 'photo'
quality = 60
[imaging.jpeg]
quality = 75
[imaging.webp]
compression = 'lossy'
hint = 'photo'
method = 2
quality = 75
useSharpYuv = false
[imaging.exif]
disableDate = false
disableLatLong = false
excludeFields = 'GPS|Exif|Exposure[M|P|B]|Contrast|Resolution|Sharp|JPEG|Metering|Sensing|Saturation|ColorSpace|Flash|WhiteBalance'
includeFields = ''
[imaging.meta]
sources = ['exif', 'iptc']
fields = ['! *{GPS,Exif,Exposure[MPB],Contrast,Resolution,Sharp,JPEG,Metering,Sensing,Saturation,ColorSpace,Flash,WhiteBalance}*']顶层设置
以下设置对所有图像格式生效。
| 键名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
anchor |
string |
smart |
裁剪或填充图像时的焦点位置。大小写不敏感,可选 TopLeft、Top、TopRight、Left、Center、Right、BottomLeft、Bottom、BottomRight 或 Smart。Smart 使用 muesli/smartcrop 包找出图像中最有趣的区域。 |
bgColor |
string |
#ffffff |
把透明图像转换为不支持透明的格式(例如 PNG 转 JPEG)时使用的背景色。当把图像旋转非正交角度、且该区域不透明且处理规格中未指定背景色时,也用该颜色填充产生的空白区域。取值必须为 RGB 十六进制颜色。 |
compression |
string |
— | (自 v0.163.0 起弃用)请改用格式专属的 compression 设置,适用于 AVIF 与 WebP 图像。 |
hint |
string |
— | (自 v0.163.0 起弃用)请改用格式专属的 hint 设置,适用于 AVIF 与 WebP 图像。 |
quality |
int |
— | (自 v0.163.0 起弃用)请改用格式专属的 quality 设置,适用于 AVIF、JPEG 与 WebP 图像。 |
resampleFilter |
string |
box |
缩放、适配或填充图像时计算新像素所用的算法。大小写不敏感,常用取值包括 box、lanczos、catmullRom、mitchellNetravali、linear、nearestNeighbor。 |
各重采样滤波器的特点:
| 滤波器 | 说明 |
|---|---|
box |
简单快速的均值滤波器,适合缩小图像 |
lanczos |
高质量重采样滤波器,适合照片,结果锐利 |
catmullRom |
锐利的立方滤波器,比 Lanczos 更快而效果相近 |
mitchellNetravali |
立方滤波器,结果更平滑,振铃伪影少于 CatmullRom |
linear |
双线性重采样滤波器,输出平滑,比立方滤波器更快 |
nearestNeighbor |
最快,无抗锯齿 |
可用重采样滤波器的完整列表参见源码文档。若愿意用性能换取画质,可以试试其他滤波器。
AVIF
自 v0.162.0 起可用。
以下设置在对 AVIF 图像编码时生效。
从 Lightroom 导出 HDR AVIF 图像时,在导出对话框的 File Settings 下取消勾选 Maximize Compatibility,可提升 Hugo 的 AVIF 解码速度。
把动画图像编码为 AVIF 会得到单帧(静态)图像。把动画 AVIF 转换为 GIF 等其他格式则工作正常。
[imaging.avif]
compression = 'lossy'
encoderSpeed = 10
hint = 'photo'
quality = 60| 键名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
compression |
string |
lossy |
(自 v0.163.0 起)编码策略,可选 lossy 或 lossless。 |
encoderSpeed |
int |
10 |
编码器速度,取值 1–10 的整数,等价于 avifenc 命令行的 -s 标志。数值越小文件越小,构建耗时越长。在常见的 Web 图像尺寸下,各档位的画质难以区分。小于 5 的值可能显著延长构建时间。 |
hint |
string |
photo |
(自 v0.163.0 起)内容提示。可选 drawing、icon、photo、picture 或 text。使用 photo 与 picture 时 Hugo 采用 4:2:0 色度子采样,其余取值使用 4:4:4。 |
quality |
int |
60 |
(自 v0.163.0 起)使用 lossy 压缩时的视觉保真度,取值 1–100 的整数。数值越小文件越小,数值越大画面越清晰。质量值因编码器而异,不能跨格式直接比较:AVIF 的 60 在观感上接近 JPEG 的 75。 |
hint 的取值含义:
| 取值 | 示例 |
|---|---|
drawing |
对比度细节丰富的手绘或线稿 |
icon |
小尺寸彩色图像 |
photo |
自然光照下的户外照片 |
picture |
室内照片,例如人像 |
text |
以文字为主的图像 |
JPEG
自 v0.163.0 起可用。
以下设置在对 JPEG 图像编码时生效。
[imaging.jpeg]
quality = 75| 键名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
quality |
int |
75 |
视觉保真度,取值 1–100 的整数。数值越小文件越小,数值越大画面越清晰。 |
WebP
自 v0.155.0 起可用。
以下设置在对 WebP 图像编码时生效。
[imaging.webp]
compression = 'lossy'
hint = 'photo'
method = 2
quality = 75
useSharpYuv = false| 键名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
compression |
string |
lossy |
(自 v0.163.0 起)编码策略,可选 lossy 或 lossless。 |
hint |
string |
photo |
内容提示,等价于 cwebp 命令行的 -preset 标志。可选 drawing、icon、photo、picture 或 text。 |
method |
int |
2 |
压缩算法的投入程度,取值 0–6 的整数,等价于 cwebp 命令行的 -m 标志。数值越小处理越快,数值越大压缩率与画质越好。 |
quality |
int |
75 |
(自 v0.163.0 起)使用 lossy 压缩时的视觉保真度,取值 1–100 的整数。数值越小文件越小,数值越大画面越清晰。 |
useSharpYuv |
bool |
false |
RGB 转 YUV 时使用的转换方法,等价于 cwebp 命令行的 -sharp_yuv 标志。启用后优先保证锐度,牺牲处理速度。 |
hint 的取值含义与 AVIF 一节相同。
Exif 方法
自 v0.155.0 起弃用,请改用 Meta 方法。
以下参数用于控制 Exif 元数据的提取与过滤:
| 键名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
disableDate |
bool |
false |
是否禁用日期与时间元数据(例如 Exif 的 DateTimeOriginal)的提取。 |
disableLatLong |
bool |
false |
是否禁用经纬度(GPS 坐标)元数据的提取。 |
excludeFields |
string |
GPS|Exif|Exposure[M|P|B]|Contrast|Resolution|Sharp|JPEG|Metering|Sensing|Saturation|ColorSpace|Flash|WhiteBalance |
正则表达式,匹配提取时要排除的 Exif 字段名。 |
includeFields |
string |
空字符串('') |
正则表达式,匹配提取时要包含的 Exif 字段名,为空时不按字段名筛选。 |
Meta 方法
自 v0.155.0 起可用。
使用 Meta 方法时,以下参数用于控制 Hugo 提取与过滤元数据的方式,便于在数据粒度与构建性能之间取得平衡。
| 键名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
fields |
[]string |
排除技术性元数据后的默认集合 | 匹配要提取的字段的 glob 切片。为空时使用一套排除技术性元数据的默认集合。设为 ['**'] 可包含所有字段。 |
sources |
[]string |
['exif', 'iptc'] |
要包含的元数据来源,取 exif、iptc、xmp 中的一个或多个。默认排除 XMP 元数据以提升性能。 |
为提升性能并减小缓存体积,Hugo 默认排除以下字段:
ColorSpace、Contrast、Exif、ExposureBias、ExposureMode、ExposureProgram、Flash、GPS、JPEG、Metering、Resolution、Saturation、Sensing、Sharp、WhiteBalance。
相关处理方法见图像处理。