Image Format Converter

Upload any browser-decodable image, pick PNG, JPEG, or WebP, download the converted file. Re-encoded on canvas, locally.

Private by architecture: All processing is 100% client-side memory. Your data never leaves this browser tab.

Drag & drop an image here (PNG, JPG, WebP, GIF, BMP), or

About This Tool

Decodes whatever image the browser can open: PNG, JPEG, WebP, GIF, BMP: draws it to a canvas, and re-exports it as PNG, JPEG, or WebP via canvas.toBlob(). PNG stays lossless at any setting; JPEG and WebP expose a quality slider since they are lossy, trading file size for fidelity.

It is for changing the file format only, at the same pixel dimensions. To change the pixel size instead, use Image Resizer; to shrink a JPEG file size without changing format, use Image Compressor.

Key Features

  • 3 target formats: PNG, JPEG, and WebP, covering the common lossless/lossy cases.
  • Quality slider for lossy formats only: Hidden automatically for PNG, since it has no quality setting.
  • Any source format the browser decodes: PNG, JPEG, WebP, GIF, and BMP all work as input.
  • Correct file extension: Download matches the target format (.png, .jpg, .webp).
  • Side-by-side preview: Compare original and converted images before downloading.

Frequently Asked Questions

Why is there no quality slider for PNG?
PNG is a lossless format: it has no quality setting to adjust. The slider only appears for JPEG and WebP, which are lossy and compress based on the chosen quality.
Can I convert an animated GIF?
Only the first frame. Canvas only ever renders a single frame of a GIF, so the output will be a static PNG/JPEG/WebP of that frame, not an animation.
Does converting to JPEG lose transparency?
Yes. JPEG has no alpha channel, so transparent pixels get flattened onto a solid background. PNG and WebP both preserve transparency.
Is my image uploaded anywhere?
No. The browser decodes and re-encodes the image locally via the canvas API; nothing is sent to a server.