PNG, JPEG, WebP, AVIF, GIF · as many as you like · paste works too
How it works
Everything runs in your browser. Your images are never uploaded: the code that compresses them makes no network requests, and a strict Content-Security-Policy keeps it from loading anything but this site's own files.
PNG, Smaller: picks the best palette of up to 256 colors for each image (as few as the quality setting allows), with optional dithering, then packs it with oxipng. Transparency is kept, including soft edges. Screenshots, icons and graphics usually shrink 60–80% with no visible change.
PNG, Lossless: same pixels, only better compression (oxipng).
JPEG is re-encoded with MozJPEG (progressive). WebP and AVIF are re-encoded in the same format; lossless WebP stays lossless. Choose WebP or AVIF under Output to convert, which is often much smaller still.
Never bigger: if the result isn't smaller, you get your original back (with its metadata removed, if that's on).
Metadata: with "Remove metadata" on, camera details, GPS location, dates and editing history are dropped. Photos are turned the right way up first, so nothing appears sideways.
Color profiles: re-encoded images are converted to sRGB (the web's standard) and saved without a profile, which every browser and app shows correctly; very saturated Display P3 colors can come out a touch less vivid. When the original file is kept (or for lossless PNG), its color profile is kept too, since the pixels haven't changed.
GIF: still GIFs become PNG when that's smaller (or WebP/AVIF if chosen). Animated GIFs, PNGs and WebPs are left as they are.
Speed: several images are compressed at once in background workers. AVIF is slow to encode, especially for big photos and in Safari; large images use a faster AVIF setting.
Need a different format, or HEIC? convert.gripe. · Need to crop it first? crop.gripe. · Want to see what's in a photo's metadata? exif.gripe. · Need to edit it first? editor.gripe.