Converters

Change a file’s format or size, or a length’s unit, without anything leaving your device.

All 14 converters

Every one runs in your browser. Nothing is uploaded and nothing is metered.

Image converter

Convert and shrink as many images as you like, without an upload.

Drop your images →

Image compressor

Make a PNG smaller without changing a pixel, and a JPEG smaller than your browser can.

Drop your images →

Image editor

Crop, turn, flip and resize in one pass — with a resampler that keeps the detail.

Drop an image →

Pixel converter

Pixels to inches, cm, pt, rem and em, for CSS, for print, or measured on your screen.

Type a size →

SVG optimiser

Shrink an SVG, and see what each risky setting costs before you use it.

Paste your SVG →

Data URI converter

Inline a file as base64 — and find out whether you should.

Drop a file →

GIF maker

Images into an animated GIF, with the file size shown before you commit.

Add your frames →

Image enlarger

Lanczos resampling, shown beside your browser’s own scaler so you can judge it.

Drop an image →

SVG to PNG

PNG, JPEG or WebP at an exact or print size, after a check for fonts and files that would go missing.

Drop your SVGs →

PNG to SVG

Trace a logo or drawing to SVG, with its size, path count and error measured.

Drop a PNG or JPG →

Code to image

Code as a sharp SVG or PNG, every colour contrast-checked, with alt text written.

Paste your code →

Resize image

Any number of photos to pixels, a long side, a print size or a file size — upright, with true colours.

Choose images →

Social media image sizes

One photo to every platform’s size, each from the platform’s own page, checked against its upload limit.

Choose an image →

Screenshot beautifier

Frame a screenshot on a background, kept pixel for pixel, with private details covered for good.

Choose a screenshot →

What file converters are

Tools that change a file from one format to another. The distinction that matters is where the work happens: an uploading converter sends your file to a machine you do not control and meters what it gives back, while a client-side one runs in your browser and cannot meter anything.

Format conversion that runs on your machine. No upload means no queue, no daily limit, no account, and no copy of your file on someone else’s disk.

The trade is that some conversions genuinely cannot be done this way. Those are named on each page rather than faked.

The limit nobody else removes

"Nothing is uploaded" has stopped being a differentiator for image tools — most of the good ones run locally now. What none of them removed is the file count. Squoosh, the reference implementation of the idea, still handles one image at a time. Caesium caps a session at ten. TinyPNG’s web tool stops at twenty, because behind it is a server somebody pays for.

There is no server in this path, so the cap has no reason to exist. The honest framing is not "no limits" but your device’s limits rather than ours — which is also why images are processed one after another instead of all at once. Decoding several large photographs simultaneously is the fastest way to exhaust a phone’s memory and lose the tab.

What makes these converters different

  • Batches with no ceiling

    There is no server time to ration, so nothing is rationed. Files run one after another rather than in parallel, because that is what stops a phone running out of memory halfway through a folder.

    Squoosh has no batch mode at all; Caesium caps a session at ten files and TinyPNG’s web tool at twenty.

  • Optimising is not the same as re-encoding

    Most browser tools decode your file onto a canvas and ask the canvas to write it back out. That is the right trade for changing a format and the wrong one for making a file smaller: a general-purpose encoder in a hurry makes very different choices from one whose entire job is to find the smallest legal encoding of the same pixels.

    Measured here: a 21,493-byte flat interface graphic came back out of a canvas PNG encode at 38,905 bytes, 81% larger. The same source through oxipng produced 3,350 bytes with every pixel identical.

  • A quality number is one encoder’s private dial

    Two encoders set to the same quality value have not discarded the same amount of information, so comparing them at the same number compares nothing. What you get instead is the two images at the same size with the real byte figure under each.

    On identical pixels, MozJPEG at quality 75 produced 113,935 bytes against Chromium’s 139,476 — 18% smaller — and at quality 92 produced 188,448 against 176,567, 7% larger.

  • The canvas ceiling is handled rather than hit

    Past the browser’s canvas limit there is no error and no warning: you get a file of the right dimensions containing nothing. Every allocation is clamped first, including the intermediate canvases, and the readout states the size you actually got.

    Canvas dimensions are capped near 8192 pixels a side and about 16 megapixels in total on iOS before 2024.

How to do it

The order that works, and why each step changes the answer.

  1. Decide whether you want a different format or a smaller file

    They are different jobs with different tools. Converting a WebP to PNG makes it bigger; compressing a PNG does not change what it is. Choosing the wrong one is the most common reason a result disappoints.

  2. Do the lossless pass first

    PNG, GIF and BMP have a route that changes no pixel values at all. Run it before you consider throwing anything away: it is free, and it tells you how much slack the file had.

  3. Judge a lossy setting by the picture

    Look at the two images side by side at the same size and read the bytes underneath. Do not carry a quality number over from another tool — it does not mean the same thing there.

  4. Resize before you re-encode

    Halving the width quarters the area, which is almost always a larger saving than any quality setting, and it costs nothing if the image was oversized for its slot to begin with.

  5. Look at the files that came out bigger

    Some will: a JPEG already saved at high quality, a PNG already optimised, a small icon where format overhead dominates. Keep the originals for those. A tool that only ever reports savings is not measuring anything.

Worked examples

Real inputs, real numbers. Pick one.

A flat interface graphic, three ways

You give it

A 21,493-byte PNG of a flat interface graphic.

You get

Through a canvas re-encode: 38,905 bytes, 81% larger than the source. Through oxipng: 3,350 bytes — 6.4 times smaller than the source and 91% smaller than the canvas output, with every channel of every pixel unchanged.

The same JPEG through two encoders at the same dial

You give it

One source image, MozJPEG and Chromium’s canvas encoder, at quality 75 and then at 92.

You get

At 75: 113,935 bytes against 139,476, an 18% win. At 92: 188,448 against 176,567, a 7% loss. Same image, same number, opposite verdict.

Inlining a small icon

You give it

A 3,072-byte SVG as a base64 data URI.

You get

Base64 stores three bytes as four characters, so the payload is exactly 4,096 characters — a fixed 33% inflation, plus the loss of caching, srcset and lazy loading. Below about 4 KB that is usually worth one fewer request; above it, it is not.

Which converter do you need?

Start from the job, not the tool name.

Where the limits come from

AspectdsynAn uploading converter
Files per batchUnlimited — there is nothing to meterTypically 10 to 25
File retentionNever receivedCommonly deleted after 1–2 hours
AccountNoneOften required past a daily cap
Works offlineYes — disconnect and it keeps runningNo
When a file gets biggerReported with a plus signNot shown
MetadataEXIF and GPS removed by re-encodingVaries, rarely stated

The figures behind that

  • Squoosh, the reference client-side compressor, has no batch mode at all; Caesium caps a session at ten files and TinyPNG’s web tool at twenty.

  • A 21,493-byte flat graphic came out of a canvas PNG encode at 38,905 bytes — 81% larger — and out of oxipng at 3,350 bytes, losslessly.

  • No browser can encode AVIF from a canvas, which is why it is not offered here — decode support is widely available and frequently confused with encode.

  • Tracing a photograph makes it bigger, not smaller: a 39,044-byte WebP render traced to a 228,206-byte SVG, 5.8 times the size, with 636 paths (measured October 2026).

  • Canvas dimensions are capped near 8192 pixels a side and about 16 megapixels in total on iOS before 2024; exceeding it returns a blank image rather than an error.

  • Neither Chromium nor WebKit writes a resolution into the PNG it encodes from a canvas (measured October 2026), so a 300 ppi export opens in Photoshop at 72 unless the converter adds the pHYs chunk itself.

  • Of the 65 syntax themes that ship with the shiki highlighter, 56 set at least one token colour under 4.5:1 on their own background, and 49 fail on the comment colour (measured October 2026).

  • A Mac writes 144 ppi into a Retina screenshot, so a 1920 × 1200 capture is a 960 × 600 window at 2×; exported at 2×, it needs no scaling at all, yet shots.so’s “1x” export of its default layout was 1920 × 1440 whatever was placed in it (measured October 2026).

Keep exploring