---
title: Process
description: Applicable to images, returns a new image resource processed according to the given processing specification.
categories: []
keywords: [process]
params:
alt_title: RESOURCE.Process
functions_and_methods:
returnType: images.ImageResource
signatures: [RESOURCE.Process SPECIFICATION]
---
{{% include "/_common/methods/resource/global-page-remote-resources.md" %}}
The `Process` method returns a new resource from a [processable image](g) according to the given [processing specification][].
> [!note]
> Use the [`reflect.IsImageResourceProcessable`][] function to verify that an image can be processed.
## Usage
This versatile method supports the full range of image transformations including resizing, cropping, rotation, and format conversion within a single specification string. Unlike specialized methods such as [`Resize`][] or [`Crop`][], you must explicitly include the [action](#action) in the specification if you are changing the image dimensions.
```go-html-template
{{ with resources.Get "images/original.jpg" }}
{{ with .Process "crop 200x200 TopRight webp q50" }}
{{ 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:
```go-html-template
{{/* 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. This is more effective if you need to apply multiple filters to an image. See [`images.Process`][].
{{% include "/_common/methods/resource/processing-spec.md" %}}
## Example
```go-html-template
{{ with resources.Get "images/original.jpg" }}
{{ with .Process "crop 200x200 TopRight webp q50" }}
{{ end }}
{{ end }}
```
{{< img
src="images/examples/zion-national-park.jpg"
alt="Zion National Park"
filter="Process"
filterArgs="crop 200x200 TopRight webp q50"
example=true
>}}
[`Crop`]: /methods/resource/crop/
[`Resize`]: /methods/resource/resize/
[`images.Process`]: /functions/images/process/
[`reflect.IsImageResourceProcessable`]: /functions/reflect/isimageresourceprocessable/
[processing specification]: #processing-specification