Compress images
Make pictures small enough for email, forms, websites or chat. Set a quality, or name a file size and the tool finds the highest quality that fits, scaling the picture down when quality alone is not enough. Everything runs in your browser on your own device.
Compress image
or drop them here. Files stay on this device.
- Runs on your deviceNo upload. Files stay in your browser.
- Free, no accountNo sign-up, nothing stored on our servers. Limits: images up to 16384 pixels on a side.
- FormatsPNG, JPG, WebP, GIF, BMP in; JPG, WebP or PNG out
- Works onCurrent Chrome, Edge, Firefox and Safari, desktop and mobile.
How it works
- Choose or drop one or more images.
- Set a quality or a target size in KB, optionally a maximum pixel size, and the output format.
- Press Compress images and download the files, or one ZIP for a batch. Each download says how much smaller it is.
Questions
How does the target file size work?
For JPEG and WebP the tool encodes the picture at different qualities between 95% and 30% and keeps the highest quality that fits under your number. If even 30% is too big, the picture is also scaled down, step by step, until it fits (down to 64 px on the longest side at most), and the result names its new size in pixels. Untick If the lowest quality is still too big, also scale the picture down until it fits to keep the pixel size: you then get the 30% result and a note. A picture already under your number in its own format is not scaled for it: you get the original without its metadata, or the re-encoded file when that is smaller.
How is a PNG made smaller?
With Up to 256 colours (the default), a PNG kept as PNG gets a palette of at most 256 colours chosen from the picture itself (median cut, refined), and every pixel is set to one of them with Floyd-Steinberg dithering, so gradients stay smooth, though they can look slightly grainy up close; the file is written as a palette PNG, the way TinyPNG and pngquant work. Transparency is kept. A picture that already has 256 colours or fewer, such as a GIF, keeps every colour exactly. Aiming for a file size tries fewer colours, from 256 down to 2, and then scales the picture down if it still does not fit, as for JPEG and WebP. With Every colour the PNG stays lossless, which rarely makes it smaller. Either way, a file that would not come out smaller is handed back as your original (minus its metadata), and the result says so. For photos, WebP or JPEG is usually smaller still.
Can the result be bigger than the original?
Not when you keep the format and pixel size: if the re-encoded file is no smaller, you get your original back (without its metadata) and the result says so. If you change the format or set a pixel limit, the tool delivers what you asked for even when that file is bigger, for example a tiny GIF saved as JPEG, and the download then says how much bigger instead of smaller.
Does the quality drop visibly?
At 75% most photos look the same on screen; text-heavy screenshots show artefacts sooner, so use WebP or a higher quality for those. Compressing an already compressed JPEG again always loses a little more. Pixel dimensions only change if you set a longest-side limit, or when a target file size cannot be reached at the lowest quality and scaling down is ticked.
What happens to transparency and metadata?
WebP and PNG keep transparency. JPEG cannot, so transparent areas are filled with white or black. Metadata such as EXIF camera details and GPS location is never copied: a re-encoded file is built from the pixels alone, and an original that is kept because re-encoding would not help is handed back with its metadata segments cut out (only the colour profile and, for a photo taken sideways, the orientation tag stay, so it still looks the same). Re-encoded photos taken sideways are rotated the way your browser displays them first.
Are there size limits?
Images wider or taller than 16,384 pixels are refused with a message: that is this tool's limit. In a batch, a file that fails is skipped and named, and the others still download. Animated GIFs, PNGs and WebPs are compressed from their first frame only. A WebP result holds at most 16,383 pixels on a side: a larger one is skipped with a message. WebP output is not available in browsers that cannot write WebP (older Safari); the option is then disabled.
Is my file uploaded?
No. The page loads a small script into your browser and every operation runs on your device. You can check this yourself in the browser's network panel: after the page has loaded there are no upload requests. Closing the tab discards the file.
Do I need an account or to pay?
No. These basic tools are free and store nothing on our servers. The only limits are the tool's own: images up to 16384 pixels on a side. Within them, the practical limit is your device's memory.
What does this page keep in my browser?
Nothing you open or type. While the tab is open, the tool pages keep a short list of the steps taken in it, in the tab's session storage: the step (page opened, started, succeeded, first success, used again or failed), the tool's name, the time, how many files were used and, for a failure, an error code; never a file name, the contents of a file or your text. It holds at most the latest 200 steps, and the browser deletes it when the tab closes. The page never sends it. Where a Report a problem button is shown, you can attach the last 20 steps to your report; nothing is attached unless you tick that box. In local storage the page keeps only choices you made: a Light or Dark theme until you choose System again, the language you picked with the EN / 中文 switch if it differs from your browser's language, and this tool in your recently used list if you switched that list on at the tools page.
Questions or problems
Found a problem or missing feature? Tell us. Please describe the steps; do not send confidential data.