How to use it
Drop in a PNG, JPG or WebP and convert it to another format, or make it smaller by lowering the quality or the dimensions. Everything runs on your device: the picture is never sent to a server, so it works offline and stays private.
Example
photo.png · 2 MB · 4000×3000 photo.webp · ~300 KB · 1920×1440 Illustrative — actual savings depend on the image and quality you pick.
Methodology
The image is drawn onto an HTML <canvas> and re-encoded with canvas.toBlob(type, quality). Quality is the compression setting for the lossy formats (WebP, JPEG); PNG is lossless so it ignores it. Optional resizing scales the longest side down while keeping the aspect ratio. All of this happens locally in the browser — no upload.
Sources
Frequently asked questions
Is my image uploaded anywhere?
No. It is read and re-encoded entirely in your browser using the canvas API. You can turn off your internet after the page loads and it still works.
Which formats can I convert between?
Input can be PNG, JPG, WebP, GIF or BMP; output is WebP, JPEG or PNG. WebP usually gives the smallest file at the same visual quality.
Why does converting to JPEG remove transparency?
JPEG has no alpha channel, so transparent areas are filled with white. Choose PNG or WebP as the output format to keep transparency.
How do I make the file smaller?
Lower the quality slider and/or pick a smaller maximum size. WebP at 70–80% quality is a good balance between size and looks.