Process
适用于图像,返回根据给定处理规格处理的新图像资源。
Syntax
RESOURCE.Process SPECIFICATION
Returns
images.ImageResource
根据给定的 处理规格 处理图像。这个通用的方法支持完整的图像转换范围,包括调整大小、裁剪、旋转和格式转换,都在单个规格字符串内完成。
{{ with resources.Get "images/original.jpg" }}
{{ with .Process "crop 200x200 TopRight webp q50" }}
<img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="">
{{ end }}
{{ end }}在上面的示例中,"crop 200x200 TopRight webp q50" 是_处理规格_。
您也可以使用此方法应用简单的转换,如旋转和转换:
{{/* 逆时针旋转 90 度。*/}}
{{ $image := $image.Process "r90" }}
{{/* 转换为 WebP。*/}}
{{ $image := $image.Process "webp" }}Process 方法也可用作滤镜,如果您需要对图像应用多个滤镜,则更有效。请参阅 images.Process。
处理规范
处理规范是一个空格分隔、不区分大小写的列表,包含以下一个或多个选项(顺序任意):
- action
- 指定
crop、fill、fit或resize之一。这适用于Process方法和images.Process滤镜。如果指定了动作,还必须提供尺寸。 - anchor
- 裁剪或填充图像时使用的焦点。有效选项包括
TopLeft、Top、TopRight、Left、Center、Right、BottomLeft、Bottom、BottomRight或Smart。Smart选项利用smartcrop.js库来识别图像中最有趣的区域。这默认为站点配置中的anchor参数。 - background color
- 将透明图像转换为不支持透明的格式(如 PNG 转 JPEG)时使用的背景色。当按非正交角度旋转图像时,如果空间不透明且处理规范中未指定背景色,此颜色也会填充产生的空白区域。值必须是 RGB 十六进制颜色。这默认为站点配置中的
bgColor参数。 - compression
- New in v0.153.5
- 用于图像的编码策略。选项为
lossy或lossless。请注意,lossless仅 WebP 格式支持。这默认为站点配置中的compression参数。 - dimensions
- 结果图像的尺寸,以像素为单位。格式为
WIDTHxHEIGHT,其中WIDTH和HEIGHT为整数。调整图像大小时,您可以仅指定宽度(如600x)或仅指定高度(如x400)以进行比例缩放。调整图像大小时同时指定宽度和高度可能会导致非比例缩放。裁剪、适配或填充时,必须同时指定宽度和高度,如600x400。 - format
- 结果图像的格式。有效选项包括
bmp、gif、jpeg、png、tiff或webp。这默认为源图像的格式。 - hint
- 处理 WebP 图像时使用的编码预设,相当于
cwebpCLI 的-preset标志。有效选项包括drawing、icon、photo、picture或text。这默认为站点配置中的hint参数。值 示例 drawing具有高对比度细节的手绘或线条画 icon小型彩色图像 photo自然光下的户外照片 picture室内照片,如人像 text主要是文本的图像 - quality
- 图像的视觉保真度,适用于使用
lossy压缩的 JPEG 和 WebP 格式。格式为qQUALITY,其中QUALITY是1到100(含)之间的整数。较小的数字优先考虑较小的文件大小,而较大的数字优先考虑视觉清晰度。这默认为站点配置中的quality参数。 - resampling filter
- 调整大小、适配或填充图像时用于计算新像素的算法。常见选项包括
box、lanczos、catmullRom、mitchellNetravali、linear或nearestNeighbor。这默认为站点配置中的resampleFilter参数。滤镜 描述 box简单快速的平均滤镜,适用于缩小 lanczos高质量重采样滤镜,适用于摄影图像,产生清晰的结果 catmullRom锐利的立方滤镜,比 Lanczos 滤镜更快,同时提供相似的结果 mitchellNetravali立方滤镜,比 CatmullRom 产生更平滑的结果,振铃伪影更少 linear双线性重采样滤镜,产生平滑输出,比立方滤镜更快 nearestNeighbor最快的重采样滤镜,无抗锯齿 有关可用重采样滤镜的完整列表,请参阅 源文档。如果您希望以性能为代价提高图像质量,可以尝试使用替代滤镜。
- rotation
- 逆时针旋转图像的整度数。格式为
rDEGREES,其中DEGREES为整数。Hugo 在执行任何其他变换之前执行旋转,因此您的 目标尺寸 和任何 锚点 都应指旋转后的图像方向。使用r90、r180或r270进行正交旋转,或使用任意角度如r45。要顺时针旋转,请使用负数如r-45。要根据图像的 Exif 方向标签自动旋转图像,请使用images.AutoOrient滤镜而不是手动旋转。按非正交值旋转会增加图像范围以适应旋转后的角落。对于支持 alpha 通道的格式(如 PNG 或 WebP),此产生的空白区域默认为透明。如果目标格式不支持透明(如 JPEG),或者您在处理规范中明确指定了 背景色,则会填充该空间。如果需要颜色但未在处理字符串中指定,则默认为站点配置中的
bgColor参数。
示例
{{ with resources.Get "images/original.jpg" }}
{{ with .Process "crop 200x200 TopRight webp q50" }}
<img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="">
{{ end }}
{{ end }}Original
Processed