A lightweight desktop tool for quickly cropping regions from images. Built with Python and Tkinter — no installation wizard, no bloat.
By Los Amos del Calabozo
- Draw a crop selection by clicking and dragging on the image
- Resize the selection with 8 handles (corners + edge midpoints)
- Move the selection by dragging inside it
- Toolbar buttons for Save, ◀ Prev, ▶ Next — all with keyboard shortcut tooltips on hover
- Save crops with the toolbar button,
Enter, orSpace— files are numbered automatically (_cr1,_cr2, …) - Navigate between images in the same folder with the toolbar or keyboard
- Remembers the last opened file between sessions
- Customisable output folder and filename pattern via the ⚙ Settings dialog
- Overwrite original option in Settings (with a stern warning — this cannot be undone)
- Rule-of-thirds grid overlay inside the selection
- Python 3.8+
- Pillow
Install Pillow if you don't have it:
pip install Pillowpython image_cropper.pyOr open a specific image directly:
python image_cropper.py /path/to/image.jpgAll actions are available via toolbar buttons. Keyboard shortcuts also work:
| Action | Keyboard | Toolbar |
|---|---|---|
| Open image | Ctrl+O |
File > Open |
| Draw selection | — | Click + drag |
| Resize selection | — | Drag any of the 8 handles |
| Move selection | — | Drag inside the selection |
| Clear selection | Esc |
Click outside the selection |
| Save crop | Enter or Space |
💾 Save crop |
| Next image in folder | → |
▶ |
| Previous image in folder | ← |
◀ |
Crops are saved according to your settings (configurable via the ⚙ button):
| Option | Description |
|---|---|
| Subfolder (default) | Saves into a named subfolder next to the source image (default: cropped/) |
| Same folder | Saves alongside the original image |
| Custom folder | Saves to any folder you choose |
| Overwrite original |
The filename is controlled by a configurable pattern. Available placeholders:
| Placeholder | Meaning |
|---|---|
{base} |
Original filename without extension |
{n} |
Crop number (1, 2, 3, …) |
{ext} |
File extension (e.g. .jpg) |
Default pattern: {base}_cr{n}
Example output: photo_cr1.jpg, photo_cr2.jpg, …
Settings are saved automatically to:
- Windows:
C:\Users\<you>\.image_cropper.ini - macOS / Linux:
~/.image_cropper.ini
You can edit this file directly or use the ⚙ Settings dialog in the app.
.jpg .jpeg .png .bmp .gif .tiff .webp
CC0 1.0 Universal — public domain. Do whatever you want with it.
