oLoveTools
Runs in your browser

Convert images to the format you actually need, and see what it cost

Drop up to 50 photos, choose the format, size and weight, and convert when you are ready. Nothing is uploaded and nothing starts without you pressing the button.

  • No upload, no account
  • Measured quality (SSIM)
  • Batch of 50

Drop your images here

Up to 50 at a time. You can also paste from the clipboard.

JPG, PNG, WEBP, AVIF, GIF, BMP, SVG, TIFF, HEIC

Files wait here: conversion only starts when you press Convert.

How it works

Three steps, and none of them start on their own.

  1. 1

    Drop the files

    They are decoded once and wait in the queue. Nothing is converted and nothing leaves your device.

  2. 2

    Set the output

    Format, quality, size, rotation, background. Or one preset and done.

  3. 3

    Convert and compare

    You get the weight, the dimensions and an SSIM score of what the conversion cost.

What it does that a plain converter does not

Parallel background workers

Encoding runs off the main thread across several workers, so the page stays responsive with 50 images in the queue.

Formats verified, not guessed

Every encoder is tested with a real two-pixel encode at startup. A browser that cannot write AVIF will not offer it.

Quality you can read

An SSIM score against the source tells you what the compression actually cost, instead of only how much you saved.

Target file size

Say "under 500 KB" and the quality is found by bisection, up to 8 encodes, to land just under the limit.

Nothing is uploaded

Decoding, resizing and encoding all happen in your browser. No server sees your photos, and it works offline.

Batch with per-image overrides

Up to 50 images at once, and any of them can break away with its own format and size.

Formats, and what each one really gives you

Input: JPG, PNG, WEBP, AVIF, GIF, BMP, SVG, TIFF and HEIC. EPS and camera RAW need a PostScript interpreter and per-camera tables, so they are not accepted rather than silently returned as a PNG.

WEBP

The best size-to-quality trade-off for the web today, with transparency. Supported everywhere that matters.

AVIF

Smaller still at the same quality, but only some browsers can write it. If yours cannot, the button is disabled.

JPG

The universal photographic format. No transparency, so you pick the background colour that goes underneath.

PNG

Lossless with transparency. The quality slider does nothing here, and that is why it is greyed out.

ICO

A real multi-size icon: 16, 32, 48, 64, 128 and 256 px in a single file, centre-cropped to a square.

PDF

One page fitted to the image, with a JPEG inside at the quality you chose.

TIFF

Uncompressed RGBA for printing and archiving. Also accepted as input.

SVG

A wrapper: the raster is embedded inside an SVG. It does not trace vectors — no browser tool can — but it works wherever only .svg is accepted.

Frequently asked questions

Are my images uploaded anywhere?+

No. Decoding, resizing and encoding all happen inside your browser using the canvas and web workers. Nothing is sent to a server, and once the page has loaded it works with no connection at all.

Why are some formats crossed out?+

Because your browser has no encoder for them. Browsers do not report this: asking for a GIF or a HEIC gives you back a PNG with the type quietly changed. At startup we encode two pixels into each format and check what actually comes out, so you are only offered what works.

Can it convert to HEIC, EPS or camera RAW?+

No, and it no longer pretends to. No browser can write HEIC, EPS needs a PostScript interpreter and RAW is a different sensor format per camera model. HEIC and TIFF are accepted as input; EPS and RAW files are rejected with a message instead of coming back as a mislabelled PNG.

What is the SSIM number next to the result?+

It is a similarity score between the converted image and the source, from 0 to 1. Above 0.98 the difference is very hard to see; below 0.95 artefacts start to show on photographs. It exists because "saved 68%" only tells you the flattering half of the story.

Why does nothing happen when I drop a file?+

That is deliberate. Dropping a file only decodes it and puts it in the queue. The conversion — the expensive part — waits for you to press Convert, so you set everything up first instead of racing a preview that keeps restarting.

Does resizing lose detail?+

Any big reduction does, but how much depends on the engine. Some browsers reduce in one pass with a 2x2 kernel and throw the rest of the pixels away, which shows up as jagged edges. FormatFlow measures that at startup — it downscales a test pattern and compares it against an exact average — and only falls back to halving the image step by step when the browser needs it. Where the browser already filters properly, the extra passes would cost time and change nothing, so they are skipped. You can also add a sharpening pass on top.

Why are my phone photos no longer rotated wrong?+

Because the image is decoded with createImageBitmap and the EXIF orientation applied there, once. The old approach loaded the file into an <img> element, where some browsers apply the orientation tag and others do not, and the canvas ended up with the unrotated frame.

How many images can I convert at once?+

Fifty. They are encoded across several background workers at the same time, and each one can carry its own format and size if you switch on the per-image override.

Keywords

image converterconvert HEIC to JPGPNG to WEBPJPG to AVIFWEBP to PNGTIFF to JPGimage to ICOfavicon generatorimage to PDFbatch image converterresize images onlinecompress images to a target sizeoffline image converterfree image converter no upload
CONTACT FOR IDEAS AND FEEDBACK:

© 2026 FORMATFLOW. Everything runs in your browser.

FormatFlow | Image Converter with Measured Quality

Convert images to WEBP, AVIF, JPG, PNG, ICO, PDF, TIFF or SVG in your browser. Batch of 50, target file size, real multi-size ICO, HEIC and TIFF input, and an SSIM quality score. Nothing is uploaded.

A converter that tells you what it did

FormatFlow converts images between JPG, PNG, WEBP, AVIF, ICO, PDF, TIFF and SVG entirely inside your browser. It reads HEIC from iPhones and TIFF as input, resizes by scale, long edge or exact dimensions, rotates, flips, sets the background colour for formats without transparency, and can hit a maximum file size by searching for the right quality.

What it will not do is lie to you. Formats your browser cannot encode are shown disabled instead of returning a PNG with the wrong extension, EPS and camera RAW are rejected outright, and every result comes with its weight, its dimensions and an SSIM score of the quality it cost. Nothing is uploaded: the whole pipeline runs on your machine.

Frequently asked questions

Are my images uploaded anywhere?

No. Decoding, resizing and encoding all happen inside your browser using the canvas and web workers. Nothing is sent to a server, and once the page has loaded it works with no connection at all.

Why are some formats crossed out?

Because your browser has no encoder for them. Browsers do not report this: asking for a GIF or a HEIC gives you back a PNG with the type quietly changed. At startup we encode two pixels into each format and check what actually comes out, so you are only offered what works.

Can it convert to HEIC, EPS or camera RAW?

No, and it no longer pretends to. No browser can write HEIC, EPS needs a PostScript interpreter and RAW is a different sensor format per camera model. HEIC and TIFF are accepted as input; EPS and RAW files are rejected with a message instead of coming back as a mislabelled PNG.

What is the SSIM number next to the result?

It is a similarity score between the converted image and the source, from 0 to 1. Above 0.98 the difference is very hard to see; below 0.95 artefacts start to show on photographs. It exists because "saved 68%" only tells you the flattering half of the story.

Why does nothing happen when I drop a file?

That is deliberate. Dropping a file only decodes it and puts it in the queue. The conversion — the expensive part — waits for you to press Convert, so you set everything up first instead of racing a preview that keeps restarting.

Does resizing lose detail?

Any big reduction does, but how much depends on the engine. Some browsers reduce in one pass with a 2x2 kernel and throw the rest of the pixels away, which shows up as jagged edges. FormatFlow measures that at startup — it downscales a test pattern and compares it against an exact average — and only falls back to halving the image step by step when the browser needs it. Where the browser already filters properly, the extra passes would cost time and change nothing, so they are skipped. You can also add a sharpening pass on top.

Why are my phone photos no longer rotated wrong?

Because the image is decoded with createImageBitmap and the EXIF orientation applied there, once. The old approach loaded the file into an <img> element, where some browsers apply the orientation tag and others do not, and the canvas ended up with the unrotated frame.

How many images can I convert at once?

Fifty. They are encoded across several background workers at the same time, and each one can carry its own format and size if you switch on the per-image override.

Keywords

image converter, convert HEIC to JPG, PNG to WEBP, JPG to AVIF, WEBP to PNG, TIFF to JPG, image to ICO, favicon generator, image to PDF, batch image converter, resize images online, compress images to a target size, offline image converter, free image converter no upload