cropshrinkIMAGE STUDIOOpen the editor

About CropShrink

CropShrink is a free image editor that crops, resizes and compresses pictures without sending them anywhere. It exists because almost every other tool that does this job asks you to upload your photographs to a stranger’s server first.

Why it works this way

Search for an image compressor and you will find dozens of sites that do the same thing: you upload a file, a server processes it, you download the result, and somewhere in the middle your photograph sat on a machine you have no visibility into. For a screenshot of a spreadsheet that may not matter. For a passport scan, a medical document, a photo of your children or an unreleased product shot, it matters a great deal.

Browsers have been able to do this work locally for years. The canvas element decodes and re-encodes images, Web Workers give you a background thread to do real signal processing on, and object URLs let you hand the result straight back to the user. There is no technical reason to upload anything. CropShrink is what you get when you take that seriously and build the whole tool around it.

How it actually works

When you open a file, the browser decodes it into an <canvas>. Nothing is transmitted — the file is read from your disk by the page you already have open.

Resizing is where most of the engineering went. Rather than calling the browser’s built-in smoothing, CropShrink implements a separable convolution resampler that runs in a Web Worker, so a large resize doesn’t freeze the interface. Three filters are available:

Two details matter more than they sound like they should. Colour is premultiplied by alpha before filtering, so semi-transparent edges don’t bleed dark fringes into the pixels next to them — a bug you can see in a surprising number of image tools. And when an image is being shrunk, the kernel widens by the scale factor, so a large downscale samples the whole region it is averaging rather than aliasing across it.

Encoding then goes through the browser’s own WebP, JPEG or PNG encoder — or, for AVIF, which browsers cannot yet encode, libavif compiled to WebAssembly and run in the page — and the download points at an object URL held in memory. Refresh the page and all of it — image, edits, output — is gone.

What it deliberately doesn’t do

CropShrink handles one image at a time. There is no batch mode, no account, no saved projects and no cloud library, because all three would require exactly the infrastructure the tool exists to avoid. Metadata is not preserved: re-encoding through the canvas drops EXIF, which means camera model, timestamps and GPS coordinates are removed. For most people publishing a photo that is a feature, but it is worth knowing before you rely on it.

The current limits — 60 megapixels in, 40 megapixels out, 8192 px per side — exist because the work happens in your browser’s memory rather than on a server that can be scaled up. They are published on the homepage rather than discovered when an export fails.

Who runs it

CropShrink is built and maintained by the small team behind cropshrink.com. If something is broken, wrong, or missing, we would genuinely like to hear about it — get in touch.