Free tool

Image converter: PNG, JPG, WebP and AVIF

Drop images to convert them between PNG, JPG, WebP and AVIF in your browser. Set the quality and a max size, see each file's size before and after, then download one or all as a .zip.

Free · no sign-up · runs in your browser, nothing is uploaded

Max size×px

At quality 100, Chrome and other Chromium browsers write lossless WebP. Each file shows which mode it got.

Drop PNG, JPG, WebP, AVIF, GIF, BMP or SVG imagesDrop files or a whole folder, click to pick, or paste (Ctrl+V). No file limit. They stay on your device.

PNG, JPG, WebP or AVIF: which one to pick

FormatCompressionTransparencyAnimationGood for
PNGLosslessYesAPNG onlyScreenshots, UI, logos, anything you will edit again
JPGLossyNoNoPhotos where every program must open the file
WebPLossy or losslessYesYesWeb images: smaller than PNG and JPG
AVIFLossy or losslessYesYesWeb photos when you want the smallest file

For a website, WebP is the safe default: Google measured lossless WebP at 26% smaller than PNG and lossy WebP at 25-34% smaller than JPEG at the same SSIM quality. For a file that has to open in old desktop software, an email client or a print shop, use PNG or JPG.

How this converter works

Each file is decoded by your browser with createImageBitmap() (or an <img> for SVG), drawn on a canvas at the size you set, and written out with canvas.toBlob(type, quality). The quality number from 1 to 100 maps to the 0 to 1 value that call takes; it applies to lossy formats only, so PNG has no slider.

Browsers do not fail when they cannot write a type: MDN notes that an unsupported type is exported as PNG. So the tool checks the type of every result and tells you instead of handing you a PNG named .avif. When you save to JPG, which has no alpha channel, transparent pixels are filled with the background colour you pick.

Writing a fresh file also drops metadata such as EXIF camera data and GPS location, which is often what you want before posting a photo. The pixels are rotated to match the EXIF orientation first, so phone photos do not come out sideways.

Convert images from the command line or in code

For a build step or thousands of files, the same conversions in common tools:

# ImageMagick 7: one file, or every PNG in a folder
magick photo.png -quality 80 photo.webp
magick mogrify -format jpg -quality 85 *.png

# libwebp
cwebp -q 80 in.png -o out.webp
dwebp in.webp -o out.png
// Node.js with sharp
import sharp from 'sharp';
await sharp('in.png').resize({ width: 1600, withoutEnlargement: true }).webp({ quality: 80 }).toFile('out.webp');
await sharp('in.png').avif({ quality: 50 }).toFile('out.avif');
# Python with Pillow
from PIL import Image
im = Image.open("in.png")
im.save("out.webp", quality=80)
im.convert("RGB").save("out.jpg", quality=85)  # JPG has no alpha

Things to know before you convert

  • Animated GIF and WebP become a still image. A canvas draws one frame (per the HTML spec, the format's default image or else the first frame), so only that frame is saved.
  • Lossy to lossless does not add quality. A JPG saved as PNG keeps its compression artefacts and grows in size.
  • Very large images can hit the browser's canvas size limit. If a file fails with a canvas error, set a max width such as 4000 px.
  • Colour: the canvas works in sRGB, so wide-gamut photos (Display P3) may look slightly less saturated after conversion.

For single-direction pages with their own tips, see WebP to PNG, JPG to PNG and PNG to WebP. To inline a small image in HTML or CSS, use image to Base64. More on DevHunt: design tools.

FAQ

How do I convert an image to another format?+

Pick the output format above (PNG, JPG, WebP or AVIF), then drop your images on the box, click it to choose files, or paste an image with Ctrl+V. Each file is converted at once and gets its own download link; "Download all as .zip" saves them together.

Can I convert many images at once?+

Yes. Drop as many files as you like. They are converted one after another so the page stays responsive, each row shows its progress and the size change, and the ZIP download names duplicates "photo (2).png" so nothing is overwritten.

Are my images uploaded to a server?+

No. The browser decodes each file, draws it on a canvas and encodes the new format on your device. You can turn off your network after the page loads and it still works.

Does converting an image lose quality?+

Saving as PNG is lossless, so it keeps every pixel the browser decoded. JPG, WebP and AVIF are lossy at the quality you choose; 75 to 85 is a common range for photos. One exception: at quality 100, Chromium browsers write lossless WebP, and the file list tells you which mode each WebP got. Converting a lossy file to PNG does not bring back detail that was already lost.

Why is the converted file bigger than the original?+

Usually because the output is PNG, which stores every pixel without loss, or because the quality is set higher than the original was saved at. Lower the quality, set a max width, or pick WebP or AVIF. The tool flags each file that grew.

Why is there no AVIF option?+

The AVIF button only shows when your browser can write AVIF from a canvas. The tool tests this with a 1×1 image when the page loads, because browsers quietly save PNG when they cannot encode a type. Opening AVIF files works in all current major browsers.

Can I convert HEIC photos from an iPhone?+

Only in a browser that can open HEIC, which today means Safari. In other browsers the file shows an error. On the iPhone you can also set Settings > Camera > Formats to Most Compatible so new photos are saved as JPG.

Sources: MDN: HTMLCanvasElement.toBlob() · MDN: OffscreenCanvas.convertToBlob() · MDN: image file type and format guide · Google: WebP · HTML spec: drawImage() · ImageMagick: magick · sharp output options · Pillow image file formats. Checked 2026-10-31.