A fast, privacy-first, client-side batch image cropping tool that runs entirely in your browser. No uploads, no servers, no accounts — just drop your images, set a crop region once, and download all cropped files in a ZIP.
BatchCropper is designed with your privacy as the top priority.
- 100% Client-Side: All image processing happens directly in your browser using the Canvas API. No image data is ever uploaded to a server.
- No Dependencies to Install: Open
index.htmlin any modern browser and start cropping immediately. - Your Files, Your Control: Files never leave your device.
- 🖼️ Batch Processing: Load multiple images at once and apply the same crop region to all of them.
- ✂️ Visual Crop Editor: Drag to draw a crop selection with resizable handles and a rule-of-thirds grid overlay.
- 🔢 Precise Numeric Input: Enter exact pixel coordinates for pixel-perfect crops.
- 🔍 Zoom Controls: Zoom in/out and fit-to-screen for detailed editing.
- 📦 ZIP Export: Download all cropped images in a single ZIP file via JSZip.
- 🎨 Format Selection: Export as PNG, JPEG, or WebP.
- 🌑 Dark Mode UI: Clean, minimal dark interface with IBM Plex Mono/Sans typography.
Try it now: ic3burg.github.io/BatchCropper — no install required.
- Open the live demo or
index.htmllocally in any modern browser (Chrome, Firefox, Safari, Edge). - Drop your images onto the canvas area, or click to browse.
- Draw a crop region by dragging on the image preview.
- Adjust using the numeric inputs (X, Y, Width, Height) for precision.
- Select your desired export format (PNG, JPEG, or WebP).
- Download — click "Download All Cropped" to get a ZIP of all processed images.
- Images are loaded as
Fileobjects via the File API. - The crop region is defined in native image pixels (independent of zoom level).
- On export, each image is drawn onto an off-screen
<canvas>clipped to the crop rect, then converted to a Blob. - All Blobs are bundled into a ZIP using JSZip (loaded on-demand from a CDN).
| Browser | Support |
|---|---|
| Chrome / Edge | ✅ Full |
| Firefox | ✅ Full |
| Safari | ✅ Full |
| Mobile browsers |
No build step required. Simply open the file:
open index.html
# or serve with any static server:
npx serve .BatchCropper has no build step for end users, but contributors need Node.js (v18+) to run the Prettier formatter.
git clone https://github.com/Ic3burG/BatchCropper.git
cd BatchCropper
npm install
# Activate the pre-push hook (one-time setup)
git config core.hooksPath .githooks| Command | Description |
|---|---|
npm run format |
Auto-format all files with Prettier |
npm run format:check |
Check formatting without writing (used by CI) |
Contributions are welcome! Please see CONTRIBUTING.md for guidelines and information about our Contributor License Agreement (CLA).
This project is licensed under the GNU Affero General Public License v3.0 or later — see the LICENSE file for details.
Commercial licensing is available for enterprises and professional use cases that require alternative terms. Please contact OJD Technical Solutions for more information.