Crop, straighten and resize the canvas in PhotoCraft
How to crop and straighten photos in PhotoCraft v0.23.1: the Crop tool's ratios and sizes, Straighten, overlays, Delete Cropped Pixels, Content-Aware Fill, Perspective Crop, Trim and Canvas Size.
To crop a photo in PhotoCraft, press C for the Crop tool. A frame appears around the whole image, or around the selection if there is one. Drag its edges or corners to the part you want to keep, then press Enter (↩ on macOS) or click ✓ in the options bar. To straighten a crooked horizon, drag outside the frame to turn the image, or click Straighten in the options bar and draw a line along the horizon. Pick a ratio such as 16 : 9, or an exact size such as 4 x 5 in at 300 ppi, from the dropdown at the left of the options bar. Esc cancels. PhotoCraft is free, works offline and needs no account.
This page describes PhotoCraft v0.23.1 (12 November 2026). v0.22.0 (9 November) puts Photoshop's Contextual Task Bar under the crop frame and makes Always Show Overlay the default, v0.23.0 (11 November) gives Straighten its label and tidies the options bar, and v0.22.0 to v0.23.1 bring Perspective Crop much closer to Photoshop's. Before them, v0.20.2 (5 November) and v0.21.0 (6 November) fixed and extended the Crop tool more than any releases before. v0.20.2 brings glyphs for the overlays, a grid while you turn the image, a frame that stays inside the image as it turns and Photoshop's handling of the Background when Delete Cropped Pixels is off, and v0.21.0 adds a Reset button and Content-Aware Fill on the active layer. The Crop tool has been in PhotoCraft since v0.1.0. Get the app from the download page, or crop in the browser with the online editor, which runs v0.23.1 too.
Pick the Crop tool
The Crop tool shares a toolbar slot with three others, as in Photoshop. C picks the one you used last, and Shift+C steps through the group in toolbar order. Alt-click (⌥-click) on the slot also cycles it, and a right-click or a long press opens the flyout.
| Tool | What it's for |
|---|---|
| Crop | Cropping, straightening and extending the canvas. This page is mostly about it |
| Perspective Crop | Turning a skewed area, such as a photographed page, into an upright rectangle (below) |
| Slice | Cutting the image into slices for web export |
| Slice Select | Selecting, moving and resizing slices |
The Frame tool (K) has its own slot right after this group. It draws a frame that clips a layer to its shape, and it doesn't crop the canvas. Every tool is described in the tools list, and every key in the shortcuts cheat sheet.
Crop a photo
- Press
C. The frame covers the canvas, or the selection's bounds if you made a selection first. - Drag an edge or a corner to resize the frame, or drag on the image to draw a new frame. While you draw or resize, the frame's W x H in pixels shows beside the pointer, and the Info panel (Window › Info,
F8) shows it too (#10453). - Drag inside the frame to move the image under it. Drag outside it to turn the image.
- Press
Enter, click ✓ in the options bar or Done in the task bar under the frame, or double-click inside the frame. Image › Crop also commits it.
The whole crop, turn and resize included, is one step in History. Before you commit, Ctrl+Z (⌘Z) and Ctrl+Shift+Z (⌘⇧Z) undo and redo changes to the frame, not to the document.
When you press Enter on the untouched frame around the whole canvas, nothing happens. On a frame that came from a selection, it crops to the selection: the preset dropdown shows Selection while that frame is untouched (#11011). Picking another tool commits a frame you drew or changed, as Photoshop does, and drops the untouched one. Since v0.22.0 the untouched frame looks different, as in Photoshop: a dashed outline with grey handles, without the dimming shield or the overlay, which appear once you start changing it (#11022).
After a commit, or after Esc, the frame disappears until you next press on the canvas or pick a ratio, so the cropped image no longer looks as if a crop were still pending (#10642, #10396). Picking the tool again keeps it hidden. Another document gets its own frame.
The Contextual Task Bar
Since v0.22.0 a small floating bar sits centred under the crop frame and follows it as you draw, move or resize it (#11669). From left to right it has a grip, the same preset dropdown as the options bar (the two stay in sync), Straighten, a ⋯ menu and, while a crop is pending, Cancel and Done. Drag the grip to put the bar somewhere else. The ⋯ menu has Hide bar, Reset bar position and Pin bar position. Window › Contextual Task Bar shows or hides it, and the setting is kept across restarts. Photoshop's Generative Expand button isn't there, since PhotoCraft has no generative fill.
Drag modifiers
| Gesture | Effect |
|---|---|
Shift while drawing a frame | A square frame |
Alt (⌥) while drawing or resizing | From the centre |
Space while drawing | Move the frame being drawn |
Shift on a corner | Keeps the frame's proportions. Since v0.20.2 the corner follows the frame's diagonal, as in Photoshop (#10941). Upstream's example: dragging a corner of an 800 x 500 frame by (−100, −50) used to give 720 x 450, and now gives Photoshop's 706 x 441 |
Shift while turning | Turns in 15° steps |
Ctrl (⌘) drag | Draws a Straighten line (below) |
Arrow keys, with Shift for 10 px | Nudge the frame, or in the default mode the image under it |
| Right-click the pending crop | A menu with the ratios and saved presets, Clear, the overlays, Cancel and Crop (v0.17.0) |
If you hold a drag that draws a new frame past the edge of the canvas area, the view scrolls, and so it does when you move or resize the frame in Classic Mode or with Auto Center Preview off. Perspective Crop scrolls the same way (#9310). Picking another tool with its key in the middle of a drag ends the drag where the pointer was (#9224).
Default mode and Classic Mode
By default the frame stays upright on screen and the image moves and turns behind it, as in today's Photoshop. A drag inside the frame moves the image, and a drag outside turns it about the frame's centre. With Auto Center Preview on (the default), a frame you resize stays centred on screen and a frame you draw moves to the middle when you let go.
Use Classic Mode (P while a crop is in progress, or the gear menu) brings back the older behaviour: the frame moves and turns over a fixed image.
Both modes make the same crop. Switching documents cancels a pending crop, and since v0.21.0 it also leaves the old document's view upright instead of turned (#9204).
Turn and straighten
Turn by dragging
Move the pointer outside the frame until it becomes a curved two-headed arrow, then drag. The angle shows beside the pointer.
Two things are new in v0.20.2, both in the default mode:
- A grid while you turn. While you turn, a grid of lines 48 screen points apart, centred on the frame, replaces the overlay. You get the chosen overlay back when you let go (#11220). Classic Mode keeps the chosen overlay, and with Never Show Overlay no grid shows.
- The frame stays inside the image. As the image turns, the frame moves in, or shrinks while keeping its proportions, so no empty corners get into the crop. Turn back and it returns to its size (#11109). It isn't kept inside if you hold
Ctrl(⌘) during the turn, if Fill is set to Content-Aware Fill, or if the frame already reached past the canvas when you started.
Straighten
Use Straighten when something in the photo should be level or plumb, such as a horizon or a wall:
- The options-bar button (Straighten, "Straighten the image by drawing a line on it"; since v0.23.0 it has its label and a spirit-level icon, #11490): click it, then draw a line along the horizon. The image turns so the line is level, or vertical if the line is closer to vertical. The frame becomes the largest one with the same proportions that fits inside the turned image, centred on it. The button works for one line, then turns off.
- Hold
Ctrl(⌘) with the Crop tool and drag for the same line without the button. Since v0.20.2 this line keeps the frame's size and position, as in Photoshop, so the corners the turn uncovers are filled when you pressEnter(#10950). Upstream's measurement: an 800 x 500 frame stays 800 x 500. What goes into the corners is the Fill setting below.
A line shorter than 3 screen points does nothing. Straighten only changes the pending frame, so Enter commits it and Esc cancels it as with any crop.
Outside the Crop tool, the Ruler tool (I) has Straighten Layer in its options bar. It turns the active layer so the ruler line is level. Since v0.22.0 it is greyed out, as in Photoshop, on the Background, with several layers selected, on a group, and on a layer with Lock All or Lock Position; on a hidden layer it answers "Could not straighten the layer because the target layer is hidden." (#12148). Up to v0.21.0 it also turned the Background and cropped the canvas. With a ruler line drawn, Image › Image Rotation › Arbitrary… opens with the line's angle, since v0.23.0 to two decimals, such as 33.69°, and since v0.23.1 the dialog shows and applies exactly that rounded value (#12165, #13217). File › Automate › Crop and Straighten Photos finds the photos on a flatbed scan and opens each one, upright, as a new document.
The options bar
From left to right:
| Control | What it does |
|---|---|
| Preset dropdown | Ratio (free), W x H x Resolution, Original Ratio, 1 : 1 (Square), 4 : 5 (8 : 10), 5 : 7, 2 : 3 (4 : 6) and 16 : 9, Photoshop's eight size presets (such as 4 x 5 in 300 ppi, 8.5 x 11 in 300 ppi and 1366 x 768 px 135 ppi), your saved presets, Front Image, New Crop Preset… and Delete Crop Preset… |
| W ⇄ H | The ratio's two sides, which you can type (up to three decimals, such as 1.414 : 1). ⇄ swaps them. Since v0.23.0 they stay empty for a free ratio instead of showing 0 |
| Clear | Back to a free ratio, or in W x H x Resolution mode empties W, H and the resolution |
| Straighten | The spirit-level button. See above |
| Overlay button | Which overlay the frame shows, and when |
| Gear | Classic Mode, Show Cropped Area, Auto Center Preview and the crop shield |
| Delete Cropped Pixels | On by default. See below |
| Fill | What goes where the image doesn't reach. See below |
| ⓘ | Since v0.23.0, a short Fill options help for the two Fill choices |
| Reset, ⊘, ✓ | Reset the frame (greyed out until you change it), cancel (Esc), commit (Enter). Since v0.23.0, ⊘ and ✓ show only while a crop is pending, right after Reset (#11490) |
Ratios and exact sizes
A ratio holds while you draw or resize the frame. Since v0.21.0, ⇄ (or X) turns the frame to the other orientation about its centre at the same size, instead of fitting the swapped ratio inside the old frame and shrinking it (#7739). Clear now really returns to a free ratio. Before v0.20.2 it could keep custom proportions you had typed (#9842).
W x H x Resolution sets the output size. Type a width and a height with units ("4 in", "10 cm", "1024 px"; a bare number keeps the field's unit) and a resolution in px/in or px/cm. On commit, the cropped area is resampled to exactly that many pixels and the document takes the resolution, in the same History step. With W or H empty the crop isn't resampled, and an empty resolution leaves the document's alone. Front Image (or I with the Crop tool) fills in the current document's size and resolution, which is the quick way to crop another photo to match.
New Crop Preset… saves the ratio or the W x H x Resolution values under a name, such as "4 x 5 in 300 ppi" or "2 : 3". Saved crop presets also show in Window › Tool Presets. Photoshop's built-in size presets can't be deleted.
Reset
Reset (v0.21.0) puts the frame back to the one the tool started with: the selection's bounds or the canvas, upright, with any Straighten line gone. It stays greyed out until you change the frame. Unlike Cancel, it keeps the frame's own undo, so Ctrl+Z (⌘Z) brings back the frame you had (#9739).
Overlays
The overlay menu has Photoshop's six guides: Rule of Thirds (the default), Grid, Diagonal, Triangle, Golden Ratio and Golden Spiral. It also sets when they show: Auto Show Overlay (only while you drag), Always Show Overlay or Never Show Overlay. Since v0.22.0 Always Show Overlay is the default, as in Photoshop, and Reset Tool brings back Always with Rule of Thirds; up to v0.21.0 the default was Auto. A setting you saved keeps its value (#11022). Since v0.20.2 each overlay has its own glyph in this menu and in the right-click menu, and the options-bar button shows the current one (#11019).
While a frame shows, O cycles the overlays and Shift+O (⇧O) cycles the orientation of Triangle and Golden Spiral.
The gear menu and the crop shield
- Use Classic Mode (off by default), toggled with
Pwhile a crop is in progress. - Show Cropped Area (on): with it off, the area outside the frame isn't shown at all.
Htoggles it while a crop is in progress. It's greyed out in Classic Mode. - Auto Center Preview (on), default mode only.
- Enable Crop Shield (on): the dimming outside the frame. Its Color is Match Canvas (the pasteboard colour) or Custom…, and its Opacity is 75% by default. Auto Adjust Opacity (on) halves the opacity while you drag. Since v0.20.2, Custom… opens the Color Picker with a live preview: the shield takes the colour under the cursor before you click OK (#9979).
H and P are taken only once a crop is in progress. Over the untouched frame the tool shows when you pick it, they pick the Hand and Pen tools as usual. That's new in v0.20.2 (#9855). Since v0.22.0, Shift+H, Shift+P and Shift+I always pick the Hand, Pen and Eyedropper tools, even during a crop, instead of toggling Show Cropped Area, Classic Mode or Front Image (#9233).
Delete Cropped Pixels on or off
With Delete Cropped Pixels on (the default), the pixels outside the frame are thrown away.
With it off, they're kept past the edges of the canvas. You can move a layer to bring them back into view, and Image › Reveal All grows the canvas to show them again. Since v0.20.2 a crop with it off also turns the Background into a normal layer named Layer 0, as Photoshop does, so an extended or turned crop is transparent past the old edges on every layer (#10905). Before, the Background stayed and the new area took the background colour. With Fill set to Content-Aware Fill, the Background stays a Background. Image › Reveal All keeps its own behaviour.
From the first press until you commit or cancel, the canvas also shows the pixels that lie past its edges, so you can frame them.
Fill: background, transparent or Content-Aware
Fill decides what goes into the parts of the frame the image doesn't cover: the corners that turning uncovers, or the strips added when the frame reaches past the canvas.
- Background (default), which reads Transparent (default) when Delete Cropped Pixels is off: the Background gets the background colour and other layers stay transparent. With Delete Cropped Pixels off, everything is transparent (see above) (#11011).
- Content-Aware Fill rebuilds those areas from the pixels around them, with no AI. Since v0.21.0 it fills the Background and, with Delete Cropped Pixels on, the active pixel layer too, as long as it is visible and unlocked. Each one is filled from its own pixels. With no Background, the active pixel layer is filled (#11458). History calls the step Content-aware Crop.
Since v0.22.0, Fill goes back to the first choice when you switch to another open document, as Photoshop does. It stays as you set it when you change tools, commit or cancel a crop, or open or create a document (#11022). The ⓘ button after Fill (v0.23.0) explains the two choices.
Content-Aware Fill is slow on big photos. Upstream timed a 25.6-megapixel image at about 7 s for a straight extension and about 17 s for a turned crop (median of three runs), roughly twice as long as before v0.21.0 because the active layer is filled too. Generative expand isn't offered.
Extend the canvas with the Crop tool
Drag a frame edge past the image to add canvas, zooming out first if the image fills the window. The new area is filled as described under Fill. For an exact amount, use Image › Canvas Size… (below).
Perspective Crop
The Perspective Crop tool (C, second in the group, since v0.8.2) straightens a rectangle seen at an angle, such as a document, a painting or a facade:
- Drag a box, or click the four corners. Since v0.23.0, while you click corners the shape follows the pointer with its grid (#12232),
Shiftdraws a square box andAltdraws it from the centre (#12236). With a selection, the first drag or click drops it as its own Deselect step, as in Photoshop (#12226, v0.23.0). - Drag each corner onto a corner of the object. Drag inside to move the whole shape. With Show Grid on, a grid shows the perspective. The shape turns red when it can't be committed, for example when it crosses itself. Since v0.23.0,
Shiftkeeps a dragged corner on one axis andAltkeeps a rectangle a rectangle. Since v0.22.0 the image outside the shape is dimmed (#12227). - Press
Enteror ✓.Escor ⊘ cancels. Since v0.22.0 ✓ and ⊘ show only while there is a shape or clicked corners (#12221).
The output size comes from the same W, H and resolution fields as the Crop tool, with Front Image and Clear buttons. With W and H empty it came from the average lengths of the shape's sides up to v0.22.0; since v0.23.0 it takes the size of the rectangle the shape shows in perspective, which upstream matched to Photoshop's results: a skewed shape that used to give 661 x 375 now gives 732 x 588, against Photoshop's 731 x 588 (#12421). Since v0.23.1 W and H take 1 to 300,000 px and the resolution 1 to 29,999.999 px/in: a value out of range is replaced by the closest one, with Photoshop's alert, and Clear also sets the unit back to px/in (#12237). Also in v0.23.1, a drag that makes no box keeps the corners you already clicked (#13234). Pixels outside the shape are always deleted; there's no Delete Cropped Pixels option, as in Photoshop. Type, shape, fill and smart object layers are rasterized first.
There's still no live preview of the result before you commit. Upstream tracks the remaining differences under #11797, opened on 7 November 2026; most of the changes above come from it. Still open as of 12 November: shape and fill layers should stay editable (#11800). The size with W and H empty (#11798) was fixed in v0.23.0.
Crop, Trim, Reveal All and Canvas Size
These Image menu commands change the canvas without the tool:
| Command | What it does |
|---|---|
| Image › Crop | Crops to the selection's bounds. With the Crop tool's frame pending, it commits that frame |
| Image › Trim… | Removes transparent edges, or edges the colour of the top-left or bottom-right pixel, from any of the four sides. Since v0.21.0 alpha that rounds to 0 at the document's bit depth counts as transparent, so near-invisible pixels no longer stop a trim (#9300) |
| Image › Reveal All | Grows the canvas to every layer's pixels, such as those a crop with Delete Cropped Pixels off kept |
Image › Canvas Size… (Ctrl+Alt+C, ⌘⌥C) | Adds or removes canvas around the image, in pixels or percent, absolute or relative, from one of nine anchor points. The new area takes the background colour by default, or the foreground colour, white, black, transparency or a colour you pick |
Image › Image Size… (Ctrl+Alt+I, ⌘⌥I) | Resizes the image itself instead of cropping it |
| Image › Image Rotation | 90° and 180° turns, flips, and Arbitrary… for an exact angle. With a Ruler line it opens with the line's angle, to two decimals since v0.23.0 |
While a crop is pending, most menu commands are greyed out until you commit or cancel it, as in Photoshop. Close, Save, Save As, Undo, Redo, Image › Crop and most of the View menu stay available. A jump in the History panel waits too, with "Commit or cancel the crop first" (#9286).
In the browser
The online editor on this site runs v0.23.1, so it has the same Crop tool, task bar, options bar and Image menu commands as the desktop app. The work runs in the page, so a Content-Aware crop of a large photo keeps the editor busy until it finishes. Since v0.21.0 a big operation that doesn't fit in the browser's memory stops with an error message instead of crashing the editor (#10129).
From the command line and MCP
The Crop tool's commit is the engine command image.crop, so actions, photocraft-cli and automation agents can crop too. It takes the frame as x, y, width and height in pixels, plus:
angle: the frame's turn in degrees. The document is turned so the frame is upright, then cropped.deleteCroppedPixels(defaulttrue) andcontentAware(defaultfalse), as in the options bar.targetWidth,targetHeightandresolution: the W x H x Resolution output size. Give both sides or neither.
Without a frame, it crops to the selection. A single side is limited to 300,000 px. Since v0.22.0 the four frame values go together: a width or height of 0 or less, a value that isn't a number, or only some of the four is refused with "x, y, width and height go together: …", where it used to crop to the selection silently. {} still crops to the selection (#9280).
photocraft-cli run photo.jpg --cmd image.crop --params '{"x":120,"y":80,"width":1600,"height":900}' --out photo-16x9.jpg
Trim and Canvas Size work the same way:
photocraft-cli run logo.png --cmd image.trim --out logo-trimmed.png
photocraft-cli run logo-trimmed.png --cmd image.canvasSize --params '{"width":40,"height":40,"relative":true,"extensionColor":"transparent"}' --out logo-padded.png
photocraft-cli commands --filter crop --json lists the parameters of image.crop, image.perspectiveCrop and file.automate.cropAndStraightenPhotos. With batch and an action list, such as [["image.trim", {}]], they run on a whole folder. Agents call the same commands with the MCP command_run tool, and a Photoshop action's Crop step plays as image.crop. See MCP and CLI and Photoshop actions.
Known limits
Upstream tracks the remaining differences from Photoshop in #10866. Notable open issues as of 12 November 2026:
- Dragging a corner past the opposite side doesn't flip the frame; the corner stops at the opposite edge (#11973).
- The tool starts with a frame. Over that untouched frame,
Istill fills in Front Image andOstill cycles the overlay instead of picking the Eyedropper or Dodge tool (#6536).HandPwere fixed in v0.20.2. - The document's own ratio isn't shown when you pick the tool (#11830). The other options-bar details listed in #10888, Straighten's label, ✓ and ⊘ with no crop pending and the 0 in empty ratio fields, were fixed in v0.23.0.
- Perspective Crop has no live preview and still rasterizes shape and fill layers (#11797, #11800).
- Memory. A W x H x Resolution crop with Delete Cropped Pixels off also resamples the hidden pixels past the edges. Since v0.21.0 one that would need more memory than allowed is refused with a message instead of crashing the app (#9213). Turn Delete Cropped Pixels on, or choose a smaller size.
Troubleshooting
Enter does nothing. The frame is the untouched one around the whole canvas, so there's nothing to crop. Drag a handle first.
The frame disappeared after a crop or Esc. That's intended since v0.20.2. Press on the canvas to get a new frame.
My frame shrinks while I turn the image. The frame is being kept inside the image. Hold Ctrl (⌘) while turning, or set Fill to Content-Aware Fill, to keep its size.
The Background turned into "Layer 0". Delete Cropped Pixels was off. Turn it on for a crop that keeps the Background, or use Layer › New › Background from Layer afterwards.
Menu commands are greyed out. A crop is pending. Press Enter or Esc.
Transparent or coloured corners after straightening. The frame reached past the turned image. Use the Straighten button instead of the Ctrl line, so the frame fits inside, or set Fill to Content-Aware Fill.
More help is in Troubleshooting.