ImageSorterPro is a lightweight, cross-platform photo culling application built with JavaFX. Designed for photographers who need to rapidly review and cull large photo shoots, it lets you move through your images at speed — rejecting, keeping, and routing shots to labelled folders using nothing but keyboard hotkeys.
- Image & Video Preview: Large, full-resolution preview of photos and video clips for accurate culling decisions.
- Hotkey-based Culling: Assign destination folders to hotkeys (1–9, a–z) — one keystroke sends the current photo to its category and advances to the next.
- Click-to-Advance: Optionally advance through photos by clicking the left or right side of the preview pane, keeping your hand off the keyboard.
- Configurable Cull Destinations: Set up keep, reject, and rated folders once through the configuration dialog; reuse them across every session.
- Non-destructive Reject with Undo: Rejected photos are moved to a configurable trash folder rather than permanently deleted. Undo any of the last 50 cull actions with
Ctrl+Z. - Navigation: Step forward and backward through your shoot with arrow keys, mouse clicks, or scroll wheel.
- EXIF Orientation Support: Automatically corrects image rotation so you always see the photo the right way up.
- Memory-Efficient Caching: Pre-caches adjacent images for instant display — no waiting between shots even in large batches.
- Cross-Platform: Runs on Windows, macOS, and Linux.
- Adjustable Layout: Drag the SplitPane dividers to resize the thumbnail strip, preview, and metadata panels to suit your screen.
- Workspace Bookmarks: Bookmark shoot folders and reload them instantly from the Bookmarks menu.
- Action Modes: Choose how each hotkey action is applied via View → Action Mode:
- Move Directly: Immediately moves the file to the destination folder.
- Copy Directly: Immediately copies the file, leaving the original in place.
- Stage Move (Batch): Queues the move so you can review and commit the whole batch at once.
- Stage Copy (Batch): Queues the copy for batch commit.
- Batch Staging Controls: The status bar shows the number of queued actions and lets you commit or discard the staged batch in one click.
- Slideshow / Auto-advance Mode: Step through a shoot automatically (F5) at intervals of 1 s, 2 s, 3 s, 5 s, or 10 s — useful for a first-pass cull or client review.
- Immersive Full-Screen Mode (F11):
- Hides the thumbnail strip, left panel, and metadata panel for a distraction-free culling view.
- Hover Reveal & Auto-hide: Move the mouse to a screen edge to temporarily reveal the corresponding panel; move away to hide it again.
- Panel Pinning: Pin any panel with the
📌button to keep it visible permanently during full-screen culling.
- Rule-Based Auto-culling: Define conditional rules (e.g. ISO > 3200 → move to "Noisy" folder) to automatically route photos matching specific EXIF criteria without touching a hotkey.
The main window provides a large image/video preview, a thumbnail strip at the top for shoot overview, a metadata panel on the right showing EXIF data, and a status bar with current file info and memory usage.
The Destination Folders tab lets you map a folder path to each hotkey (1–9, a–z). While culling, press the corresponding key to instantly send the current photo to that folder and advance to the next.
The Advanced Settings tab exposes the full JSON config: cache sizes, thumbnail dimensions, supported file extensions, thread pool size, and other performance-tuning options.
The Configure Rules dialog lets you define conditional culling rules. Each rule specifies an If Field / Operator / Value condition and a Then Action (copy or move) to a chosen folder — automating first-pass culls based on EXIF metadata without manual hotkeys.
- Java 11 or higher
- JavaFX 11 or higher
- Windows, macOS, or Linux
- Minimum 4 GB RAM recommended
- 100 MB free disk space
Click File → Open Folder… or press Ctrl+O to select the folder containing your photos.
Click File → Configure Folders… or press Ctrl+P.
- Assign a destination folder to each hotkey (1–9, a–z) — for example:
1= Keep,2= Reject,3= Edit Later. - Set a Trash Folder for photos you reject with the
Deletekey. - Click Save.
- Hotkey cull: Press a hotkey (1–9, a–z) to move the photo to its assigned folder and advance automatically.
- Reject: Press
Deleteto send the current photo to the Trash Folder. - Archive: Press
0(zero) to move the photo to an Archive subfolder inside the current shoot directory. - Navigate:
Right Arrow/Left Arrowto step through the shoot without culling. - Click-to-Advance: If Enable click to move is checked, click the right half of the preview to advance and the left half to go back.
- Undo: Press
Ctrl+Zto reverse the last cull action. Up to 50 actions can be undone.
ImageSorterPro is a Maven project.
- Java Development Kit (JDK) 11 or higher
- Maven (bundled with most IDEs, or install separately)
- JavaFX SDK — download from Gluon
- Clone the repository:
git clone https://github.com/your-username/ImageSorterPro.git cd ImageSorterPro - Build the project:
Compiles the source, runs tests, and packages the application into a JAR in the
./mvnw clean install
target/directory.
java -Xms1G -Xmx1G -jar --module-path "/path/to/javafx-sdk/lib" --add-modules javafx.controls,javafx.fxml,javafx.swing,javafx.media ImageSorterPro-1.0-SNAPSHOT.jarOr use the wrapper scripts:
- Windows:
mvnw.cmd javafx:run - Linux/macOS:
./mvnw javafx:run
Error: JavaFX runtime components are missing
Solution: Add JavaFX modules to your VM options:
--module-path "C:\javafx-sdk-21\lib" --add-modules javafx.controls,javafx.fxml
- Check file permissions on the shoot folder
- Ensure the format is in the supported extensions list (jpg, tif, png, gif, bmp, jpeg)
- Verify sufficient disk space
- Reduce cache sizes in Advanced Settings
- Close other memory-intensive applications
- Check available system memory
Feel free to fork the repository, make improvements, and submit pull requests.
ImageSorterPro's own source code is licensed under the MIT License — see the LICENSE file for details.
This application bundles prebuilt FFmpeg binaries (ext-dist/) to extract video thumbnails. The bundled builds are licensed under the GNU GPL v3, separately from ImageSorterPro's own MIT-licensed code. ImageSorterPro invokes FFmpeg as a separate process, so the GPL does not extend to its own source ("mere aggregation").
If you redistribute ImageSorterPro together with these binaries, you must comply with the GPLv3 — including providing FFmpeg's corresponding source. See THIRD-PARTY-NOTICES.md and LICENSES-GPL-3.0.txt for full details and the written offer for source.



