Image Format Converter — JPEG, PNG & WebP, No Upload
Change an image's file format — JPEG, PNG or WebP — keeping every pixel, and see the before/after size before you download.
or drag an image here
Quality applies to JPEG and WebP only; PNG is always lossless.
Choose an image to begin.
What this tool does
It changes the file format of an image without touching its dimensions. If you have a PNG screenshot that is needlessly large, or a JPEG logo that should be a crisp PNG, this tool re-saves it in the format you choose and reports both sizes so you can see the difference. The pixel grid is never resampled — only the encoding changes.
Choosing a format
| Format | Best for | Notes |
|---|---|---|
| JPEG | Photographs | Small, lossy, no transparency. |
| PNG | Screenshots, logos, graphics | Lossless, supports transparency, larger. |
| WebP | The web, both photos and graphics | Usually smallest; lossy or lossless; transparency. |
The quality trade-off
For JPEG and WebP the quality setting decides how much detail is discarded to save bytes. Around 0.8 to 0.9 is the sweet spot where the loss is invisible on a screen and the file is far smaller than lossless. Below about 0.6 you start to see blocking and ringing around edges; above 0.95 you are paying for bytes no one can see. PNG has no quality setting because it is always lossless.
Watch for the transparency and re-compression traps
Two things trip people up. Converting to JPEG loses transparency, so a logo with a clear background gets a white one — keep PNG or WebP if that matters. And re-encoding an already-compressed JPEG often increases the file size, because you are compressing data that was already compressed; always work from the best source you have.
What format conversion does not change
The pixel grid is the same before and after: an 800 × 600 image stays 800 × 600. Nothing is resized, cropped or rotated, so converting a 4000-pixel photo to WebP gives a smaller file at the same dimensions — still too large for a thumbnail. If the goal is a smaller on-screen image, the dimensions have to change first; the resizer does that, and the compressor searches for the best quality within a byte budget.
Metadata is the other casualty. The canvas used for re-encoding holds pixels only, so EXIF is dropped
in every direction — including orientation, the GPS block, the capture date and the camera model. For
a photo taken on a phone that is usually what you want before publishing, because it removes the
location; it also means a photo that relies on its EXIF orientation flag must be displayed by
something that has already applied it, which browsers do for an <img> on screen.
How the formats differ underneath
PNG is lossless and stores each row with a filter chosen per scanline, then deflates the result. That is why it is superb for flat colour, text and screenshots — long runs of identical pixels compress extremely well — and poor for photographs, where every pixel differs slightly and the same deflate step finds little to remove.
JPEG splits the image into 8 × 8 blocks, converts each to a luma/chroma representation, and quantises the high-frequency detail the eye notices least. The blocks are exactly why a heavily compressed JPEG shows 8-pixel squares around edges. WebP keeps the same block-transform idea (VP8) for lossy data and adds a separate lossless mode that is usually smaller than PNG for the same pixels; the encoder switches modes based on the quality value it is handed, and a lossless WebP at quality 1 is not the same bytes as a lossy one at quality 0.99.
Alpha is the practical dividing line. PNG and WebP carry an alpha channel; JPEG has none, so every transparent pixel becomes whatever the encoder fills it with — this tool fills white, which is the usual choice for print and the wrong one for a dark page.
If the conversion appears to fail
Two failures look like bugs and are not. A browser that cannot encode a format will silently produce
PNG from toBlob; this tool checks the type that came back and says so rather than naming
the download after the format you asked for. And an image that fails to load at all — a HEIC file on
a desktop browser, a CMYK JPEG in an old engine — never reaches the canvas, because decoding is the
browser's job and this tool only re-encodes what the browser could already display.
Frequently asked questions
What does this tool do?
It converts an image from one file format to another — JPEG, PNG, WebP, and back — without changing its dimensions. Where the image resizer changes how many pixels there are, this tool keeps every pixel and only changes how they are stored.
Which format should I choose?
JPEG is smallest for photographs. PNG is lossless and supports transparency, so it suits screenshots, logos and graphics. WebP is usually smaller than both for the same quality and is supported by every current browser, which makes it the best default for the web. The tool shows the output size so you can compare.
What does the quality slider do?
It trades file size against fidelity for the lossy formats (JPEG and WebP). Lower means a smaller file with more compression artifacts; higher means a larger file that is closer to the original. PNG ignores it, because PNG is always lossless.
Will converting lose transparency?
Converting to JPEG will, because JPEG has no transparency channel — the tool fills any transparent areas with white so the result is not black or garbled. Keep PNG or WebP if you need the transparency preserved.
Does converting quality make the image bigger?
It can. Re-encoding an already-compressed JPEG at a high quality often produces a larger file, because you are re-compressing data that was already compressed once. Start from the highest-quality source you have, and compare sizes in the tool.
Is my image uploaded?
No. The conversion is done by your browser on a canvas; the file is never sent to a server.
Go deeper
Longer explanations of the problems this tool solves:
Sources
- MDN Web Docs — CanvasRenderingContext2D and the image/jpeg, image/png, image/webp MIME types.
Everything runs in your browser — your file never leaves your device.