Open PDFGami's image compressor, drop the picture in, save it as JPG or WebP at about 80% quality, and you will usually have a file a fraction of the original that looks identical at normal viewing size. If it is still too big, resize it — that lever is stronger than the quality slider. If it is a PNG screenshot, do not touch quality at all; resize it or accept the size. Everything happens in your browser, so the image is never uploaded anywhere.
Four steps to a smaller image
- 1Drop the images in. Go to pdfgami.com/compress-image and drop in PNG, JPG or WebP files — up to 30 in one batch. You can paste from the clipboard too, which is the quickest route for a screenshot you just took. SVG is refused, for a reason explained further down.
- 2Pick an output format.Keep each file's original format, or convert everything to JPG, WebP or PNG. The choice matters more than the slider does, and the section on formats below explains why.
- 3Set quality, a target size, or a resize. Drag the quality slider if you know roughly what you want. Tick “Aim for a size” and type a number in KB if you have a hard limit to meet. Add a resize — by percentage, or fitted to a maximum width or height — when the file has to get much smaller than either of those alone will manage.
- 4Check the numbers, then save. Every row shows its original dimensions and size, the result, and the percentage saved, with a running total across the batch. Save files one at a time, or take all of them as a single ZIP.
What “without losing quality” really means
It is worth being blunt about this, because a great many pages promising “compression without quality loss” are selling a contradiction. Lossy compression works by throwing information away. JPG and WebP both analyse the image, decide which detail your visual system is least likely to notice, and discard it. The saving is the loss. There is no setting that produces a smaller file while keeping every original pixel.
What is achievable — and what the phrase should mean — is no visible loss. Encoders are extremely good at choosing what to drop, and on a photograph the first large chunk of savings costs you almost nothing you can see. A few practical numbers to anchor the slider:
- 90–100%Visually indistinguishable from the source, but the file stays large. Worth it only for an image that will be edited again or printed.
- ~80%The sweet spot for photographs, and the tool's default. Most people cannot pick the result out of a line-up against the original at normal viewing size, and the file is typically a fraction of the size.
- 60–70%Small artefacts start to appear in skies, gradients and out-of-focus areas if you look for them. Perfectly reasonable for a thumbnail or a tightly capped upload.
- Below 50%Blocking and colour banding become obvious. At this point resizing the image would give you a better-looking result at the same file size.
One more caution: the loss compounds. Every time a JPG is opened and re-saved as a JPG, the encoder discards a fresh round of detail from an image that has already lost some. Compress from the best copy you have rather than from a file that has been through the mill three times.
Why a PNG will not compress
This is the single most common frustration with image compressors, so here it is plainly: PNG is a lossless format, and the browser's PNG encoder has no quality setting. There is no dial to turn down. Re-encoding a PNG as a PNG writes the identical pixels back out, and the file that comes back is roughly the size it started at — occasionally a little larger, if the original was written by a smarter encoder than the browser's.
Rather than show you a slider that would quietly do nothing, PDFGami's compressor disables the quality control and the target-size field whenever the output is PNG, and says why in the panel. If you tick a target size and the output is still PNG, the file comes back with a note telling you the target does not apply and that JPG or WebP is what you want.
- Resize it. Fewer pixels means a smaller file, and the result is still lossless at its new size. This is the right answer for screenshots, which are usually captured far larger than they will ever be displayed.
- Convert it to JPG or WebP. Now a quality setting exists and the savings can be dramatic. The catch: JPG cannot store transparency, so the compressor fills transparent areas with white rather than letting them turn black. WebP keeps the alpha channel, which makes it the better conversion for a cut-out.
One honest aside: dedicated desktop tools such as pngquant and oxipng genuinely do make PNGs smaller while keeping the format — by reducing the palette or by searching harder for the best compression filters. That is not something the browser's built-in encoder exposes, so this tool does not claim to do it. If you need a PNG that stays a PNG and gets meaningfully smaller, that is the category of program to look at.
Getting a photo under 1 MB
Upload limits are stated in megabytes, not in quality percentages, which makes guessing at a slider a frustrating way to meet one. The compressor has a mode for this: tick “Aim for a size” and type your limit in KB — 1000 for a one-megabyte cap, 500 for a tighter one, 300 for an avatar.
Behind that checkbox the tool runs a binary search across the quality scale, eight encodes per image, keeping the highest quality whose result still fits under your number. Each step has to be a real encode because the relationship between quality and file size depends entirely on the picture: a flat studio shot and a forest canopy behave completely differently at the same setting, and there is no formula that shortcuts it.
Two things worth knowing. The target only applies to JPG and WebP, because a lossless format has no scale to search. And when even the lowest quality is still above your target, the file says so — it reports the smallest size it managed and the quality it got there at, and suggests resizing as well. That is deliberately different from silently returning a file that misses the limit you specified.
Resizing is the strongest lever you have
If you only take one piece of arithmetic from this page, take this one: file size scales with pixel area, not with width. Halving the width halves the height as well, which leaves a quarter of the pixels — and, roughly, a quarter of the bytes, before the encoder has done anything. A 4000×3000 photo cut to 2000×1500 goes from twelve million pixels to three million.
That matters because most images are enormously larger than the place they end up. A phone camera produces a 4000px-wide file; a blog post displays it at 800px, a profile picture at 200px, a PDF attachment at whatever fits a page. Shipping the full-resolution original is pure waste, and no quality setting recovers the size you lose by doing it.
The compressor offers three ways to do it: scale by percentage, fit to a maximum width, or fit to a maximum height. Aspect ratio is always preserved, so nothing ever comes back stretched, and images are never enlarged — asking a 1200px original to become 4000px wide would only invent detail and inflate the file, so the tool leaves it alone. If it is the framing rather than the scale you want to change, the crop tool is the better page.
JPG, WebP or PNG: which output to pick
| Content | Best output | Why |
|---|---|---|
| Photographs | JPG or WebP | Smooth gradients are what lossy encoders handle best. WebP is usually smaller at the same apparent quality; JPG is accepted absolutely everywhere. |
| Screenshots, text, line art | PNG, resized | Hard edges are where lossy encoders fail first — lettering picks up halos and smearing long before a photo would show damage. |
| Logos and cut-outs with transparency | PNG, or WebP to save space | Both keep an alpha channel. JPG does not, so transparent areas are filled with white on the way out. |
| Vector art (SVG) | Leave it as SVG | A vector has no pixels to compress. The compressor refuses SVG rather than rasterising it into something larger. |
You can mix and match: the output format applies to the whole batch, so run photographs as JPG and screenshots as PNG in two passes if you have both. If changing format is the only thing you need — no compression, no resize — the format converter is a simpler page for it.
Thirty images at a time
One image is rarely the job. A batch of thirty is the ceiling per run, chosen so the tab stays responsive while it works — everything is being decoded and re-encoded on your own machine, and a few hundred camera originals at once would lock the page up. Progress is shown per file as it goes.
The settings apply across the batch, so you get one consistent result rather than thirty separate decisions. Afterwards each row carries its own before and after figures, the total is summarised at the top, and a single ZIP download saves the lot. If what you actually need is several photos joined into one picture, the image combiner does that, and the rest of the set lives on the image tools page.
Nothing is uploaded, and you can check
The usual architecture for a free online compressor is an upload form, a server-side image library, and a download link — which means a copy of your picture sits on a stranger's disk under a retention policy you did not read. For a holiday snap that may not bother you. For a passport scan, a product shot under embargo, or a client's photography, it should.
PDFGami does the work differently. Your browser decodes the image, draws it onto a canvas at the size you asked for, and re-encodes it — all in JavaScript, in the tab, on your own machine. There is no server step, which is also why the tool keeps working if your connection drops halfway through a batch.
Do not take that on trust, including from us. Open your browser developer tools before you compress, switch to the Network tab, and run the batch. If a tool is uploading, you will see a request the size of your files. On a browser-only tool the tab stays quiet. The same check works on any site that claims local processing.
Frequently asked questions
How do I reduce an image file size without losing quality?
Strictly speaking you cannot: every lossy encoder discards data, and that is where the saving comes from. What you can do is discard data your eye will not miss. On a photograph, a JPG or WebP encode at around 80% quality is very hard to tell from the original at normal viewing size while typically being several times smaller. If you need a guarantee of zero loss, your only honest option is to keep the format lossless and reduce the pixel count instead — a 4000px photo saved at 2000px is still pixel-perfect at the size it now is.
Why does compressing a PNG do nothing?
Because PNG is a lossless format and the browser’s PNG encoder has no quality setting to turn down. Re-saving a PNG as a PNG writes the same pixels back out, so the file comes back roughly the same size — sometimes slightly larger. PDFGami’s compressor disables the quality slider and the target size when the output is PNG, rather than showing you a control that would do nothing. To actually shrink a PNG you have two choices: resize it, or convert it to JPG or WebP.
How do I make a photo under 1 MB?
Open the compressor, tick "Aim for a size", type 1000 KB, and make sure the output format is JPG or WebP. The tool then binary-searches the quality scale — eight real encodes per image — to find the highest quality that still fits under your number. If even the lowest quality stays above the target, that file tells you so and reports the size it did reach, instead of silently handing you a file that misses. Adding a resize usually closes the gap.
Should I compress a screenshot the same way as a photo?
No. Screenshots, diagrams, text and line art have hard edges and large flat areas, which is exactly what lossy encoders are worst at — you get halos and smearing around lettering long before a photograph would show any damage. Keep those as PNG and reduce the pixel dimensions instead. If the screenshot is mostly a photograph with a little chrome around it, JPG at a high quality is fine.
Does resizing an image reduce the file size?
More than anything else you can do. File size tracks pixel area, not width, so halving the width also halves the height and leaves you with a quarter of the pixels. Going from 4000px wide to 2000px wide typically takes a file to somewhere near a quarter of its size before the encoder has done anything at all. That is why resizing is the one technique that works on PNG as well as on lossy formats.
Are my images uploaded when I use this compressor?
No. The image is decoded, drawn onto a canvas and re-encoded by JavaScript running in your own tab. There is no server step and no upload, which is also why it keeps working if your connection drops mid-batch. You can confirm it yourself: open your browser developer tools, switch to the Network tab, and run a compression. No request carrying the file appears.
Can I compress an SVG with this tool?
No, and the tool refuses the file rather than pretending. An SVG is a set of drawing instructions, not a grid of pixels, so there is nothing for an image encoder to compress — rasterising it would produce a bigger file, not a smaller one. SVGs get smaller by tidying the markup: removing editor metadata, rounding path coordinates, dropping unused defs. That is a text problem, not an image one.
Can I compress several images at once and download them together?
Yes. Drop in up to 30 images in a single batch, set one combination of quality, target size and resize, and run it. Every file is listed with its own before and after size and the percentage saved, there is a running total at the top, and you can either save individual results or take the whole batch as one ZIP.
Continue reading
Shrink your images now
Drop up to 30 pictures in, set a quality or a size in KB, download them one by one or as a ZIP. Free, and nothing leaves your device.
Open the Image Compressor
