WoluTools
← About this tool

image · Browser tool

Image Format Converter

Re-encode PNG, JPEG, WebP and AVIF files with your own quality and size settings. The pictures are decoded and written by this tab, so they never reach a server.

Runs in your browserNothing is uploadedHow it works
Free toolNo account · no file limitFree, unlimitedRuns offline once the page has loaded.

Pictures to convert

One sample picture is loaded so you can see the output before choosing your own.

Files are read with FileReader and the canvas API inside this tab. No copy is sent anywhere, and closing the tab discards everything.

Output settings

Only used by the lossy formats.

Optional resize

Zero means no limit. The aspect ratio is kept and pictures are never enlarged.

Results

SourcePixelsBeforeAfterChangeFile

What this does and what it costs you

Every conversion here follows the same path: the file is decoded into a bitmap, painted onto a canvas, and handed back to the browser's own encoder through canvas.toBlob. That is why the tool needs no server and no upload. It also explains the two limits below, which are real and worth knowing before you convert anything you care about.

Metadata does not survive

A canvas holds pixels and nothing else. EXIF blocks, GPS coordinates, camera settings, copyright fields, colour profiles and thumbnails are all discarded during the round trip. For a photo destined for a website that is usually welcome, and it is the reason this page doubles as a metadata stripper. For an archive copy it is a loss you cannot undo, so keep the original.

Orientation is the one tag the page tries to honour. When the browser supports createImageBitmap with image orientation, a phone photo that was recorded sideways with an EXIF rotation flag is rotated into place before it is drawn, so the converted file looks the way the original did. Older browsers draw the raw pixel grid instead and the picture may come out on its side. Embedded ICC profiles are never carried over, so a wide-gamut photo will be reinterpreted as sRGB and can shift slightly in colour.

HEIC input will not work, and that is not a bug here

Photos straight off an iPhone are usually HEIC, a container around HEVC-coded image data. Browsers on Windows, Linux and Android ship no HEVC image decoder, so a .heic file cannot be turned into a bitmap in this tab at all. Safari on Apple hardware is the exception because the system codec is there. This page checks the file signature and tells you plainly when it finds HEIC rather than handing you an empty picture. On a Mac or iPhone you can export as JPEG from Photos first; on Windows, the Photos app will open a HEIC and save a copy in another format.

Which formats this browser can actually write

Reading a format and writing it are separate abilities. Most browsers decode AVIF now, yet almost none can encode it through a canvas, because the encoder is slow enough that nobody wanted it on the main thread. When a browser is asked for a format it cannot write, canvas.toBlob quietly hands back a PNG under the wrong name. The list of formats above was built by encoding a sixteen-pixel test image in each type and inspecting the MIME type that came back, so anything offered to you has been proven to work here. Anything greyed out failed that test in this browser.

Re-encoding is not free

JPEG, WebP at default settings and AVIF all throw away detail that cannot be recovered. Converting a JPEG to a JPEG again adds a second round of that loss on top of the first, and the damage builds up with every pass even at high quality numbers. Work from the least compressed copy you have. Going the other way, saving a photograph as PNG produces an enormous file, because PNG codes exact pixel values and photographic noise compresses badly. PNG earns its place on screenshots, line art and anything with hard edges or transparency.

Size limits on this page

Pictures are processed one at a time and the decoded bitmap is released before the next one starts, so a long list of large files will not exhaust memory. Output is capped at forty megapixels; a source larger than that is refused until you set a maximum width or height, because browsers differ in the canvas area they allow and a silent blank result is worse than a clear refusal. Downloading the whole batch fires one download per file, which some browsers ask you to permit the first time.