# Transform, resize and crop images

> Move, scale and rotate images in Nodespell with Transform, change size with Resize, and crop with on-image handles, aspect presets and reformat.

Source: https://docs.nodespell.com/edit/transforms-and-crop/ · Last updated: 2026-11-10

Nodespell has three nodes for geometry: **Transform** moves, scales, rotates and skews an image inside its existing frame; **Resize** changes the image's pixel dimensions to a format, scale or reference; and **Crop** cuts a region out, either keeping the frame size or reformatting to the crop. All three work in the Graph and inside compositors.

## Which node changes the image size?

| Node          | Output size                                              | Use for                                                 |
| ------------- | -------------------------------------------------------- | ------------------------------------------------------- |
| **Transform** | Same as the input                                        | Positioning a layer, rotating, scaling inside the frame |
| **Resize**    | A format, custom size, scale or reference image          | Matching a delivery size or another image               |
| **Crop**      | Same as the input, or the crop size with **reformat** on | Removing edges, reframing                               |

Every other image effect outputs the same size as its input, so a chain of filters keeps your source resolution. In the Design panel, **Preview resolution** only changes the preview; see [Viewers](https://docs.nodespell.com/edit/viewers/).

## Move, scale and rotate with Transform

| Control                          | Range and default                                                         | Notes                                         |
| -------------------------------- | ------------------------------------------------------------------------- | --------------------------------------------- |
| **Scale X**, **Scale Y**         | 0.01–10, default 1                                                        |                                               |
| **Translate X**, **Translate Y** | −2 to 2, default 0                                                        | In frame widths and heights; Y moves up       |
| **Rotate**                       | −360 to 360 degrees                                                       | Positive turns clockwise on screen            |
| **Skew X**, **Skew Y**           | −89 to 89 degrees                                                         |                                               |
| **Pivot X**, **Pivot Y**         | 0–1, default 0.5 (centre)                                                 | The point scale and rotation happen around    |
| **Filter**                       | **Cubic** (default), **Mitchell**, **Lanczos 3**, **Linear**, **Nearest** | Resampling quality; Nearest keeps hard pixels |

Inside a compositor, select a Transform node to get an on-image control in the viewer: a ring that stands in for the image.

| Gesture                           | Result                                                            |
| --------------------------------- | ----------------------------------------------------------------- |
| Drag inside the ring              | Move the image                                                    |
| `Option/Alt`+drag inside the ring | Move the pivot without moving the image                           |
| Drag a square on the ring         | Scale about the pivot; hold `Shift` to scale along that axis only |
| Drag the round grip               | Rotate about the pivot; hold `Shift` to snap to 15° steps         |

The amber target marks the pivot. All gestures use the primary button, so they work on a trackpad.

## Change size with Resize

| **Target**              | Size comes from                                                                                                                           |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| **Automatic** (default) | The **Reference** input when connected; otherwise the compositor's canvas, or the image's own size outside a compositor                   |
| **Composition**         | The compositor canvas                                                                                                                     |
| **Preset**              | **Format**: HD · 1920 × 1080, UHD · 3840 × 2160, Portrait · 1080 × 1920, Square · 1080 × 1080, DCI 2K · 2048 × 1080, DCI 4K · 4096 × 2160 |
| **Custom**              | **Width** and **Height**, 1–8192 pixels                                                                                                   |
| **Reference**           | The dimensions of the image on **Reference** (only its size is used)                                                                      |
| **Scale**               | **Scale**, 0.01–16 times the input                                                                                                        |

When the shape changes, **Fit** decides what happens: **Contain** (default) pads with transparency, **Cover** crops the overflow, **Stretch** changes proportions, and **No Resize** only crops or pads. **Anchor** picks which part of the image stays aligned when padding or cropping. **Filter** is **Smooth** or **Nearest**.

## Crop with on-image handles

**Crop** stores the region in normalised coordinates from 0 to 1, with Y measured up from the bottom, as in Nuke. **Mode** is **Edges (L/R/T/B)** (default; left 0, right 1, top 1, bottom 0) or **Center (W/H/X/Y)**.

1. Add **Crop** after an image and select it. The Design panel shows the crop editor over the input image.
2. Drag the edges or corners. Hold `Shift` to keep the shape, or `Alt` to crop from the centre. Drag inside the crop to move it.
3. Pick a shape: **Free**, **Original**, **1:1**, **4:3**, **3:2**, **16:9**, **21:9** or **Custom**. **Swap orientation** turns the ratio portrait. For Custom, type a ratio and select **Set**.
4. Type an exact **Width** and **Height** in pixels if you need them; the field shows the source size beside them.
5. Use the arrow keys to nudge the crop, with `Shift` for larger steps. **Reset** returns to the full image.

The same handles, shape presets and size fields appear in a compositor's viewer when you select a Crop node there, and the preview follows as you drag. You can also open **Edit Crop** from the node, or crop from the fullscreen viewer: choose **Crop** in its tools, adjust, and apply to add a Crop node after the image you are viewing. Nothing is created until you apply.

## Keep or change the frame with reformat

The **Reformat** switch (off by default) decides the output size:

- **Off**: the output keeps the input size, and pixels outside the crop become transparent. Use this inside composites when the layer must stay registered to the plate.
- **On**: the output is resized to the crop bounds. Use this to deliver the cropped region as its own image, for example before sending it to a generator.

## Frequently asked questions

### Why is my cropped image still the original size?

**Reformat** is off, so the crop keeps the frame and makes the outside transparent. Turn **Reformat** on to output only the cropped region.

### How do I match one image's size to another?

Connect the other image to Resize's **Reference** input. With **Target** on **Automatic** or **Reference**, Resize uses its dimensions.

### Does Transform change the image resolution?

No. Transform works inside the input's frame, so parts moved outside are cut off. Use Resize to change the pixel dimensions.

### Do downstream generators get my transformed image?

Yes. Generators downstream use the current Transform, Resize and Crop results when they run.

## Related

- [Compositing](https://docs.nodespell.com/edit/compositing/): canvas size and layering.
- [Viewers](https://docs.nodespell.com/edit/viewers/): zoom and inspect at full detail.
- [Keyframes](https://docs.nodespell.com/edit/keyframes/): animate a Transform.
- [Filters and effects](https://docs.nodespell.com/edit/filters-and-effects/): distortion nodes.
- [Export](https://docs.nodespell.com/edit/export/): delivery sizes and formats.
