Process
Syntax
Returns
Use this method with global resources, page resources, or remote resources.
Process an image according to the given processing specification. This versatile method supports the full range of image transformations, including resizing, cropping, rotation, and format conversion, all within a single specification string.
{{ with resources.Get "images/original.jpg" }}
{{ with .Process "crop 200x200 TopRight webp q50" }}
<img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="">
{{ end }}
{{ end }}In the example above, "crop 200x200 TopRight webp q50" is the processing specification.
You can also use this method to apply simple transformations such as rotation and conversion:
{{/* Rotate 90 degrees counter-clockwise. */}}
{{ $image := $image.Process "r90" }}
{{/* Convert to WebP. */}}
{{ $image := $image.Process "webp" }}The Process method is also available as a filter, which is more effective if you need to apply multiple filters to an image. See images.Process.
Processing specification
The processing specification is a space-delimited, case-insensitive list containing one or more of the following options in any sequence:
- action
- Specify one of
crop,fill,fit, orresize. This is applicable to theProcessmethod and theimages.Processfilter. If you specify an action, you must also provide dimensions. - anchor
- The focal point used when cropping or filling an image. Valid options include
TopLeft,Top,TopRight,Left,Center,Right,BottomLeft,Bottom,BottomRight, orSmart. TheSmartoption utilizes thesmartcrop.jslibrary to identify the most interesting area of the image. This defaults to theanchorparameter in your site configuration. - background color
- The background color used when converting transparent images to formats that do not support transparency, such as PNG to JPEG. This color also fills the empty space created when rotating an image by a non-orthogonal angle if the space is not transparent and a background color is not specified in the processing specification. The value must be an RGB hexadecimal color. This defaults to the
bgColorparameter in your site configuration. - compression
- New in v0.153.5
- The encoding strategy used for the image. Options are
lossyorlossless. Note thatlosslessis only supported by the WebP format. This defaults to thecompressionparameter in your site configuration. - dimensions
- The dimensions of the resulting image, in pixels. The format is
WIDTHxHEIGHTwhereWIDTHandHEIGHTare whole numbers. When resizing an image, you may specify only the width (such as600x) or only the height (such asx400) for proportional scaling. Specifying both width and height when resizing an image may result in non-proportional scaling. When cropping, fitting, or filling, you must provide both width and height such as600x400. - format
- The format of the resulting image. Valid options include
bmp,gif,jpeg,png,tiff, orwebp. This defaults to the format of the source image. - hint
- The encoding preset used when processing WebP images, equivalent to the
-presetflag for thecwebpCLI. Valid options includedrawing,icon,photo,picture, ortext. This defaults to thehintparameter in your site configuration.Value Example drawingHand or line drawing with high-contrast details iconSmall colorful image photoOutdoor photograph with natural lighting pictureIndoor photograph such as a portrait textImage that is primarily text - quality
- The visual fidelity of the image, applicable to JPEG and WebP formats when using
lossycompression. The format isqQUALITYwhereQUALITYis a whole number between1and100, inclusive. Lower numbers prioritize smaller file size, while higher numbers prioritize visual clarity. This defaults to thequalityparameter in your site configuration. - resampling filter
- The algorithm used to calculate new pixels when resizing, fitting, or filling an image. Common options include
box,lanczos,catmullRom,mitchellNetravali,linear, ornearestNeighbor. This defaults to theresampleFilterparameter in your site configuration.Filter Description boxSimple and fast averaging filter appropriate for downscaling lanczosHigh-quality resampling filter for photographic images yielding sharp results catmullRomSharp cubic filter that is faster than the Lanczos filter while providing similar results mitchellNetravaliCubic filter that produces smoother results with less ringing artifacts than CatmullRom linearBilinear resampling filter, produces smooth output, faster than cubic filters nearestNeighborFastest resampling filter, no antialiasing Refer to the source documentation for a complete list of available resampling filters. If you wish to improve image quality at the expense of performance, you may wish to experiment with the alternative filters.
- rotation
- The number of whole degrees to rotate an image counter-clockwise. The format is
rDEGREESwhereDEGREESis a whole number. Hugo performs rotation before any other transformations, so your target dimensions and any anchor should refer to the image orientation after rotation. User90,r180, orr270for orthogonal rotations, or arbitrary angles such asr45. To rotate clockwise, use a negative number such asr-45. To automatically rotate an image based on its Exif orientation tag, use theimages.AutoOrientfilter instead of manual rotation.Rotating by non-orthogonal values increases the image extents to fit the rotated corners. For formats supporting alpha channels such as PNG or WebP, this resulting empty space is transparent by default. If the target format does not support transparency such as JPEG, or if you explicitly specify a background color in the processing specification, the space is filled. If a color is required but not specified in the processing string, it defaults to the
bgColorparameter in your site configuration.
Example
{{ 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

