Convert image format
Switch between JPG, PNG, and WebP, and optionally hit an exact file size or pixel dimension at the same time.
Choose images or drag & drop
JPG, PNG, or WebP · processed on this device · nothing is uploaded
Picking the right format
If your image doesn't need a transparent background, converting a PNG to JPG or WebP is usually the single biggest lever for reducing file size, bigger than adjusting quality alone. If you're not sure which to pick, JPG is the safest default for compatibility, and WebP typically compresses a bit further at the same visual quality if the platform you're uploading to supports it.
Need a specific size limit too? Set it above alongside the format, or use the image compressor. To change the pixel dimensions, use the resizer.
Common conversion pairs
PNG to JPG
The most common reason to convert: PNG has no quality dial, so a photo saved as PNG is often far larger than it needs to be. Converting to JPG usually shrinks it substantially with little visible difference.
JPG to PNG
Useful when a tool or form specifically requires PNG, or when you need transparency that JPG can't provide. It won't recover detail a JPG has already lost to compression.
WebP to JPG
Useful for compatibility, since some older software and platforms don't accept WebP. Converting to JPG trades a little extra file size for near-universal support.
Nothing you process is ever uploaded.
A lot of online image tools upload your file, work on it on a server, and promise to delete it afterwards. The tools here open the file with your browser's own image APIs and do the work in this tab, whether that's compressing, cropping, or reading pixel colors. The image is never sent over the network, so there's no server copy to keep or delete. That matters most for passport photos, ID scans, and visa forms.
Read how it works// what happens to the file you add
const bitmap = await createImageBitmap(file);
// decoded in this tab: no fetch(), no upload
ctx.drawImage(bitmap, 0, 0, width, height);
// then resize, crop, or read pixels, depending on the tool
const blob = await canvas.toBlob(format, quality);
// your download is a blob: URL made in this tab
Frequently asked questions
Should I convert PNG to JPG to make a file smaller?
Often, yes. PNG is lossless and has no quality dial, so it can only shrink so far without resizing. JPG (and WebP) can trade a small, often invisible amount of quality for a much smaller file. That's the usual recommendation for photos that don't need PNG's transparency support.
When should I keep PNG instead of converting?
Keep PNG for images that need transparency, or for screenshots, logos, and graphics with sharp text and flat colors, where JPG's compression tends to introduce visible artifacts around edges.
What's the difference between JPG and WebP?
WebP typically produces a smaller file than JPG at the same visual quality and supports transparency like PNG, but has slightly less universal compatibility with older software. JPG is the safest default for maximum compatibility.
Can I convert format and hit a file-size target in one step?
Yes. Pick your output format and turn on “Limit file size” below; both are applied together and confirmed with a pass/fail check.
Is AVIF available?
Only when your browser can actually encode it. We check for real rather than just offering it because a format exists, so it only appears as a choice when your specific browser supports producing one. AVIF can compress very efficiently, but how much control you get over that trade-off varies a lot by browser; pairing it with “Limit file size” gets a reliable result even where the quality control itself is limited.