images.Process
Syntax
images.Process SPEC
Returns
images.filter
该滤镜与资源对象上的 Process
方法具有相同的选项,但是如果您需要对图像应用多个滤镜,则使用它作为滤镜可能更有效。
处理规格是一个以空格分隔的、不区分大小写的列表,可以按任何顺序包含以下一项或多项:
- action
- 指定零个或一个
resize
、fit
、fill
或crop
。如果指定了动作,则还必须提供尺寸。参见 详细信息。
{{ $filter := images.Process "resize 300x" }}
- dimensions
- 如果指定了动作,则必填。当使用
resize
时,提供宽度 或 高度,否则提供宽度 和 高度。参见 详细信息。
{{ $filter := images.Process "crop 200x200" }}
- anchor
- 与
crop
或fill
动作一起使用。指定零个或一个TopLeft
、Top
、TopRight
、Left
、Center
、Right
、BottomLeft
、Bottom
、BottomRight
或Smart
。默认值是Smart
。参见 详细信息。
{{ $filter := images.Process "crop 200x200 center" }}
- rotation
- 通常指定零个或一个
r90
、r180
或r270
。还支持任意的旋转角度。参见 详细信息。
{{ $filter := images.Process "r90" }}
{{ $filter := images.Process "crop 200x200 center r90" }}
- 目标格式
- 指定零个或一个
gif
、jpeg
、png
、tiff
或webp
。参见 详细信息。
{{ $filter := images.Process "webp" }}
{{ $filter := images.Process "crop 200x200 center r90 webp" }}
- quality
- 适用于 JPEG 和 WebP 图像。可选择指定
qN
,其中N
是范围 [0, 100] 内的整数。默认值是75
。参见 详细信息。
{{ $filter := images.Process "q50" }}
{{ $filter := images.Process "crop 200x200 center r90 webp q50" }}
- hint
- 适用于 WebP 图像。指定零个或一个
drawing
、icon
、photo
、picture
或text
。默认值是photo
。参见 详细信息。
{{ $filter := images.Process "webp" "icon" }}
{{ $filter := images.Process "crop 200x200 center r90 webp q50 icon" }}
- background color
- 在将带有透明度的 PNG 或 WebP 转换为不支持透明度的格式时,可选择使用 3 位或 6 位十六进制颜色代码指定背景颜色。默认值是
#ffffff
(白色)。参见 详细信息。
{{ $filter := images.Process "jpeg #000" }}
{{ $filter := images.Process "crop 200x200 center r90 q50 jpeg #000" }}
- resampling filter
- 通常指定零个或一个
Box
、Lanczos
、CatmullRom
、MitchellNetravali
、Linear
或NearestNeighbor
。还有其他可用的重采样滤镜。参见 详细信息。
{{ $filter := images.Process "resize 300x lanczos" }}
{{ $filter := images.Process "resize 300x r90 q50 jpeg #000 lanczos" }}
用法
创建一个滤镜:
{{ $filter := images.Process "resize 256x q40 webp" }}
使用images.Filter
函数应用过滤器:
{{ with resources.Get "images/original.jpg" }}
{{ with . | images.Filter $filter }}
<img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="">
{{ end }}
{{ end }}
您还可以使用Resource
对象上的Filter
方法应用过滤器:
{{ with resources.Get "images/original.jpg" }}
{{ with .Filter $filter }}
<img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="">
{{ end }}
{{ end }}
示例
Original
Processed