Twelve output formats
PNG, JPG, WebP, JPEG XL, TIFF, BMP, GIF, ICO, QOI, TGA, PPM and PDF. DDS and Radiance HDR can be read as well, though not written back.
Loading converter…
This app needs WebAssembly and WebGL. Please update your browser or enable hardware acceleration, then reload the page.
Most online image converters work by sending your file to a server, converting it there and sending it back. This one does not have a server to send it to. The whole converter — every decoder, every encoder, the resizing and the ZIP packing — is compiled to WebAssembly and runs inside this browser tab, on your own machine. Open your browser's network panel and convert something: nothing leaves the page.
That is worth something for a holiday photo and it matters rather more for a scan of a passport, a contract or a medical image. It also means there is no queue, no upload wait on a slow connection, and no file size rule beyond what your own browser can hold.
PNG, JPG, WebP, JPEG XL, TIFF, BMP, GIF, ICO, QOI, TGA, PPM and PDF. DDS and Radiance HDR can be read as well, though not written back.
Lossless and lossy, both ways. Unusual for a browser tool, because most browsers still cannot display JPEG XL at all — this app brings its own pure-Rust encoder and decoder, so it works anyway.
Quarter turns and a flip about either axis, and five ways to resize: by percentage, into a bounding box, by one edge with the other following, or to exact dimensions. The result size is shown before you commit to it.
Drop in as many files as you like, set the options once, convert them all and take the results away as a single ZIP. Mixed batches can keep each file in the format it arrived in.
Eleven one-click presets — smallest lossless file, photo for a web page, small enough to email, icon, print and archive. Underneath them: quality, chroma subsampling, progressive scans, PNG row filters, resampling kernels.
English, German, Spanish, French, Portuguese, Italian, Russian, Ukrainian, Turkish, Polish, Czech, Slovak and Hungarian. It starts in whichever one your browser asks for.