What the compressor does not do
It makes files smaller by re-encoding them and, if you ask, by scaling them down. Some jobs need a different tool.
No WebP output
WebP images come back as JPG, with transparent areas filled in white, and the JPG can be larger than the WebP was. To make WebP files, use JPG to WebP or PNG to WebP.
Fewer colours in PNG files
Photos and smooth gradients saved as PNG can show banding once they are cut down to 256 colours or fewer. Convert photos with PNG to JPG first and compress the JPG instead.
No file size target
You can't ask for a result under a set number of KB. Pick a quality, check the new size in the queue, and try again with other settings if needed.
No exact dimensions
The size cap only has three presets for the longest side. To set an exact width and height, or crop to a size, use Image resizer.
Related tools
Frequently asked questions
No. Your browser compresses them inside this tab. The only downloads are libraries from the cdnjs CDN: UPNG.js and pako when you compress a PNG, and JSZip when you download a ZIP. No request carries your images.
For JPG and WebP images it sets the JPG quality. For PNG images it sets how many colours are kept: 256 from 80% up, 128 from 60%, 64 from 40%, 32 from 20% and 16 below that. Lower settings give smaller files and more visible loss.
When a JPG or PNG would not get smaller at your settings and was not scaled down, the tool gives you the original file rather than a bigger copy. Lower the quality or choose a maximum size, then compress it again.
PNG images keep it. WebP images are saved as JPG, which has no transparency, so their transparent areas turn white.
Yes, from every image it re-encodes. The new file has no camera details, dates or GPS location. The only exception is an image handed back unchanged because compressing it would not have made it smaller.
Each image can be up to 100 MB. There is no limit on how many you add, but they are compressed one at a time, so a long queue takes a while.
Your images stay on your device
Your browser decodes and re-encodes each image inside this tab. The images are not uploaded or stored anywhere, and closing the tab clears them from memory. Only the PNG and ZIP libraries are downloaded, from cdnjs, when they are needed.