images.Process

New in v0.119.0

此濾鏡與 Resource 物件上的 Process 方法具有相同的選項,但是如果您需要對影像應用多個濾鏡,使用它作為濾鏡可能更為有效。

影像處理規格是一個以空格分隔、不區分大小寫的列表,可包含以下一個或多個項目,順序不限:

動作

  • cropfillfitresize 中選擇一個動作。指定動作時,必須提供尺寸。詳見細節
{{ $filter := images.Process "resize 300x" }}

尺寸

  • 必須在指定動作時提供。指定 resize 時,提供寬度或高度。詳見尺寸詳細
{{ $filter := images.Process "crop 200x200" }}

錨點

  • cropfill 動作中使用。指定零個或一個:TopLeftTopTopRightLeftCenterRightBottomLeftBottomBottomRight,或 Smart。默認為 Smart。詳見細節
{{ $filter := images.Process "crop 200x200 center" }}

旋轉

  • 通常指定零個或一個:r90r180r270。也支持任意角度旋轉。詳見細節
{{ $filter := images.Process "r90" }}
{{ $filter := images.Process "crop 200x200 center r90" }}

目標格式

{{ $filter := images.Process "webp" }}
{{ $filter := images.Process "crop 200x200 center r90 webp" }}

品質

  • 適用於 JPEG 和 WebP 圖像。可選擇 qN,其中 N 是範圍為 [0, 100] 的整數。默認為 75。詳見質量詳細
{{ $filter := images.Process "q50" }}
{{ $filter := images.Process "crop 200x200 center r90 webp q50" }}

提示

  • 適用於 WebP 影像,等同於 cwebp 編碼器的 -preset 標誌。可選擇零個或一個:drawingiconphotopicturetext。默認為 photo。詳見提示詳細
{{ $filter := images.Process "webp" "icon" }}
{{ $filter := images.Process "crop 200x200 center r90 webp q50 icon" }}

背景顏色

  • 當將透明的 PNG 或 WebP 影像轉換為不支持透明的格式時,可選擇指定背景顏色,使用 3 位數或 6 位數的十六進制顏色碼。默認為 #ffffff(白色)。詳見背景顏色詳細
{{ $filter := images.Process "jpeg #000" }}
{{ $filter := images.Process "crop 200x200 center r90 q50 jpeg #000" }}

重取樣濾鏡

  • 通常指定零個或一個:BoxLanczosCatmullRomMitchellNetravaliLinearNearestNeighbor。還有其他可用的重取樣濾鏡。詳見重取樣濾鏡詳細
{{ $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

錫安國家公園