Image Converter

Convert an image between PNG, JPEG, WebP and AVIF locally in your browser.

  • Runs locally in your browser
  • No upload required

Capabilities

  • Drag and drop
  • Local file intake
  • Download result

Try it

Read locally in your browser; never uploaded.

AVIF is produced only when your browser can encode it.

Higher quality means a larger file. PNG is lossless and ignores this.

Choose a file, then run the tool. Everything happens in your browser.

Supported formats

Input
image/*
Output
image/png, image/jpeg, image/webp, image/avif
Files
Local file intake and drag/drop

Privacy

Runs entirely in your browser. Your input is never uploaded, stored, or sent to a third party.

Processing
In your browser
Privacy level
Browser only

Convert a 1200×800 image/png image to image/webp.

How it works

  • Decode the local file with the browser's own image decoder (createImageBitmap).
  • Draw it at its original size onto a canvas.
  • Encode the canvas as image/webp at quality 80.
  • Report the new byte size and offer the result for download.
  • The file never leaves the browser: no upload, no server, no retention.
  • AVIF output is best-effort and depends on the browser's encoder.

Methodology

  1. Decode the selected file with the browser's native image decoder; reject an undecodable or oversized file with a named finding.
  2. Paint the decoded bitmap at its original dimensions onto a canvas.
  3. Encode the canvas with the requested MIME type; PNG is lossless (no quality), the others use the requested quality.
  4. Report the output MIME, byte size and dimensions, and offer the encoded blob as a download.

Usage

  1. Choose or drop a PNG, JPEG, WebP or AVIF image.
  2. Select the output format and, for lossy formats, a quality value.
  3. Run the conversion to see the new byte size, then download the result.

Examples

These are examples, not current values: they use fixed inputs, while the interactive tool computes live results in your browser.

PNG to WebP at quality 80

jsonSelect to copy
{
  "sourceMime": "image/png",
  "sourceWidth": 1200,
  "sourceHeight": 800,
  "outputType": "image/webp",
  "quality": 80
}

JPEG to PNG (lossless)

jsonSelect to copy
{
  "sourceMime": "image/jpeg",
  "sourceWidth": 640,
  "sourceHeight": 480,
  "outputType": "image/png",
  "quality": 100
}

Limitations

Local-only conversion

The converter runs entirely in your browser using the platform image decoder, a canvas and the encoder. Your file is never sent to a server, and the result blob stays on your device until you download it.

Because the encode happens locally, the available output formats are exactly those your browser supports; the tool probes the result rather than assuming a format works.

Frequently asked questions

Is my image uploaded anywhere?
No. The file is read locally with the browser File API and decoded on your device. Nothing is uploaded, stored or logged.
Why can't I convert to AVIF?
AVIF output is best-effort: it is produced only when your browser can encode it via canvas.toBlob. Where it cannot, the tool reports that clearly instead of producing a mislabelled file.

Sources

  1. PNG (Portable Network Graphics) Specification, Third Edition — W3C
  2. RFC 9649 — WebP Image Format — IETF