reflect.IsImageResourceWithMeta
Reports whether the given value is a Resource object representing an image from which Hugo can extract dimensions and, if present, Exif, IPTC, and XMP data.
Syntax
reflect.IsImageResourceWithMeta INPUT
Returns
bool
Usage
This example iterates through all project resources and uses reflect.IsImageResourceWithMeta to safely display image dimensions and metadata only for supported formats.
{{ range resources.Match "**" }}
{{ if reflect.IsImageResourceWithMeta . }}
<img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="Image with Meta">
{{ with .Meta }}
<p>Taken on: {{ .Date }}</p>
{{ end }}
{{ end }}
{{ end }}Image operations
Use these functions to determine which operations Hugo supports for a given resource. While Hugo classifies a variety of file types as image resources, its ability to process them or extract metadata varies by format.
reflect.IsImageResource: Reports whether the given value is a Resource object representing an image as defined by its media type.reflect.IsImageResourceProcessable: Reports whether the given value is a Resource object representing an image from which Hugo can extract dimensions and perform processing such as converting, resizing, cropping, or filtering.reflect.IsImageResourceWithMeta: Reports whether the given value is a Resource object representing an image from which Hugo can extract dimensions and, if present, Exif, IPTC, and XMP data.
The table below shows the values these functions return for various file formats. Use it to determine which checks are required before calling specific methods in your templates.
| Format | IsImageResource | IsImageResourceProcessable | IsImageResourceWithMeta |
|---|---|---|---|
| AVIF | true | false | true |
| BMP | true | true | true |
| GIF | true | true | true |
| HEIC | true | false | true |
| HEIF | true | false | true |
| ICO | true | false | false |
| JPEG | true | true | true |
| PNG | true | true | true |
| SVG | true | false | false |
| TIFF | true | true | true |
| WebP | true | true | true |
This contrived example demonstrates how to iterate through resources and use these functions to apply the appropriate handling for each image format.
{{ range resources.Match "**" }}
{{ if reflect.IsImageResource . }}
{{ if reflect.IsImageResourceProcessable . }}
{{ with .Process "resize 300x webp" }}
<img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="">
{{ end }}
{{ else if reflect.IsImageResourceWithMeta . }}
<img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="">
{{ else }}
<img src="{{ .RelPermalink }}" alt="">
{{ end }}
{{ end }}
{{ end }}Last updated:
February 27, 2026
:
content: Miscellaneous udpates for v0.157.0 (35da1aa3c)
Improve this page