Compress images to an exact size
Pick a target — 500 KB, 1 MB, whatever you need — and PicShift finds the highest quality that still fits. No upload, no server, no queue. Free, no signup, no watermark.
Drop images here
or choose files · JPG, PNG, WebP, HEIC, TIFF, AVIF, GIF, BMP, SVG
Done
Why this one is different
Most online converters take your photos, upload them to a server, and hand you back a watermarked file while charging you by the month. This one doesn't have a server to upload to.
Nothing can be uploaded
This isn't a promise, it's a constraint. The site ships a
Content-Security-Policy header with connect-src 'none',
which makes your browser refuse to let the page open a network connection at all.
Open DevTools → Network, convert a photo, and watch the request list stay empty.
No file size games
Competitors cap the free tier at 100 MB, 5 files, or one conversion per day, because every upload costs them money. Processing locally costs us nothing, so there's no reason to ration it.
Transparency handled right
Converting a transparent PNG to JPG normally turns the background black. We lay down a white background first, the way you'd expect.
No watermark, no signup
There is no account, no email, and no logo stamped on your photos.
How the compression works
| You drop in | What happens |
|---|---|
| JPG / WebP | Re-encoded at the highest quality that fits your target |
| PNG (lossless) | Converted to the format you picked — PNG has no quality dial |
| HEIC / TIFF / AVIF / GIF / BMP / SVG | Decoded, then encoded to the format you picked |
The search runs on your own CPU: PicShift encodes the image a handful of times at different quality settings and keeps the best one that fits. On a large photo that takes a second or two — the progress bar is real work, not a decoration.
If the target is impossible, we say so. A 40-megapixel photo cannot be squeezed into 50 KB at any usable quality. Rather than hand you a different number than you asked for and stay quiet, the result row tells you the smallest size that format could reach.
Pricing
The free tier is not a trial. It does not expire and it has no watermark.
Free
$0
- Up to 10 images per batch
- Unlimited batches
- No upload, no signup, no watermark
- JPG · PNG · WebP · BMP · ICO · TIFF · GIF output
Pro not built yet
$9/month · or $59/year
- Up to 500 images per batch
- Files up to 500 MB each
- A desktop build for folders too big for a browser tab
Nothing here exists yet, and there is no way to pay. If the free plan covers what you need, use it — that is the intended outcome.
Pricing is a guess and we know it. If the free tier covers what you need, use it — that's the point. If you want Pro when it ships, the button will be here.
Questions
How much quality do I lose?
Only as much as the target demands. PicShift does not guess a quality setting — it searches for the highest one whose output still fits, so a generous target costs you almost nothing. If you want zero loss, use the converter and choose PNG instead.
Why can't I choose PNG as the output?
Because PNG is lossless: there is no quality setting to turn down, so a "compression" target would be a lie. PNG files do shrink when you re-encode them (that is what the converter does), but you cannot ask for a specific smaller size. If you need PNG specifically, keep the original.
Should I pick JPG or WebP?
WebP is typically 25–35% smaller than JPG at the same visual quality, and it supports transparency. JPG wins only on compatibility with very old software. If in doubt, pick WebP — every current browser and phone opens it.
Can I compress many images at once?
Yes, up to 10 per batch on the free tier, and you can download them all as a ZIP. Each file gets its own quality search, so a small photo and a huge one both land under the target without one dragging the other down.
Are my images uploaded?
No. The site is served with connect-src 'none' in its
Content-Security-Policy, so your browser refuses to let this page open a network
connection at all. Everything — including the repeated encoding the size search
needs — happens on your own machine.
Why is the result sometimes smaller than my target?
If the image at maximum quality is already under your target, PicShift stops there instead of inflating the file to hit the number exactly. You get the best possible quality and a smaller file — there is no downside.