OnlineAITool

How This Site Works

Everything runs on your device

These tools do not upload your files. The work happens in your browser, using the same canvas and file APIs any web page has access to. There is no server that receives your photo, your PDF or your CV, because there is no server in the path at all.

You do not have to take that on trust. Open your browser's developer tools, switch to the Network tab, and use any tool on this site. You will see the page and its scripts load, and then nothing — no request carrying your file. If you disconnect from the internet after the page has loaded, the tools still work.

This is also why there is no account, no watermark and no daily limit. Those exist to recover the cost of running files through a server. We do not have that cost.

Twelve pages are the exception, and they say so on the page. The AI writing, career and document tools need a language model, which cannot run in a browser at usable speed, so those pages send text to a small Cloudflare Worker and get text back. Even there the file itself stays put: a PDF's text is extracted on your device and only the extracted text travels. Those twelve are the only pages with a daily limit, which is how you can tell them apart. There is a section below on what they publish instead of a measured run.

Why our tool pages publish measured numbers

Most tool sites describe what their software is supposed to do. We publish what it actually did. Every "measured run" section on this site comes from driving that page's own code against a fixed set of reference files and recording each step: the dimensions chosen, every encode attempt, the bytes each one produced, and how long it took.

Nothing in those sections is written by hand. If a measurement is missing for a page, the section is left out rather than filled in with something plausible.

This has already caught real faults in our own tools. Measuring the PNG presets showed they were giving up after eight steps and then reporting the file they happened to have as the "smallest achievable" — which was untrue. Measuring the fixed-size presets showed they were stretching images to fill the box instead of cropping, distorting every face by about 15%. Both were fixed because running the tools made them visible; neither was obvious from reading the code.

The reference files

We use four reference files, generated by a deterministic script so they are identical every time. They are synthetic, and we would rather say so plainly than imply we photographed something.

ReferenceDimensionsSizeStands in for
12.2 MP photograph3024 × 40322.94 MBA current phone camera file
2 MP photograph1200 × 1600460 KBAn older camera, or an already-resized photo
A4 document scan1654 × 2339996 KBA 200 dpi scan of flat text on paper
Scanned signature900 × 380141 KBInk on paper from a flatbed scanner

A fifth reference is a document rather than a picture, because the pages that read a PDF need text to read. You can download it: reference-document.pdf — 5,736 bytes, 3 pages, 660 words of flat administrative English, set as real Helvetica text in uncompressed content streams rather than as a picture of words. It is ASCII only, so one character on the page is one character in the extracted string and the counts we publish can be checked by hand.

Why a synthetic file can stand in for a real photograph

This is the part that decides whether the published figures are worth anything, so it is worth being specific.

What JPEG charges you for is not the subject of a photograph but its power spectrum — how image energy is distributed across spatial frequencies. Natural photographs are remarkably consistent here: amplitude falls off at roughly 1/f, meaning each doubling of detail frequency carries about half the amplitude. An image built with that same falloff costs a JPEG encoder very nearly what a real photograph costs.

So the reference images are not random pixels. Each is summed octaves of value noise with 1/f amplitude weighting, plus the three things real scenes have that pure noise does not: hard object edges, texture concentrated in part of the frame rather than spread evenly, and low-amplitude sensor grain.

We then checked that assumption instead of asserting it. Measured against the compression curve of typical 12 MP camera files, the reference photograph lands within 9% on average across the quality range:

JPEG qualityTypical real 12 MP photoOur reference
0.900.180 bytes/px0.216 bytes/px
0.800.1050.115
0.700.0780.081
0.600.0630.061
0.500.0520.048
0.300.0300.028

Saved as a camera-style JPEG the reference is 2.94 MB at 12.2 megapixels, which is where real phone photos of that resolution sit.

An early version of the generator was far too compressible — 0.017 bytes/px at quality 0.5, about a third of what a real photo costs. Publishing figures from it would have made every compression result on this site look better than you will actually get. It was rebuilt with a broader-band texture layer until it matched.

Limits of this approach

Real photographs vary a great deal. A portrait against a plain wall compresses far more easily than a photograph of foliage, and both are "normal" photos. Our reference sits in the middle of that range, so treat published figures as a well-founded central estimate, not a guarantee for your particular file. Your own result appears on screen when you use the tool, and that number is the one that matters.

Timings were recorded on a desktop browser. A mid-range phone will be slower, often by two to four times, because this work happens on your device.

The twelve pages that cannot carry a measured run

Twelve pages on this site break the rule above, and it is better to name them than to let you discover it. The four AI document tools, the four career writing tools and the four writing tools send text to a language model running on Cloudflare. Those pages carry no sample output, for two reasons.

The first is that a language model does not give the same answer twice. Every other figure on this site can be re-derived by anyone who downloads the reference file and runs the tool; a model response cannot. Printing one and labelling it a measurement would borrow the credibility of the other measurements without earning it.

The second is that those tools are capped at five requests per person per day, because they run on a free allowance. Publishing a dozen sample outputs would be advertising something you cannot repeat.

What those pages publish instead is the part that is fixed and checkable: the exact JSON the page sends, the exact system prompt the model is given, the model name, and the limits the server enforces. The prompts are read out of the deployed Worker source at build time rather than retyped, so the page cannot drift from what is actually running. The four PDF pages additionally carry a genuine measured run of the half that does happen on your device — pdf.js pulling 3,879 characters out of the reference document above, with the outbound request switched off so only the extraction was measured.

Specifications and dates

Where a page states an official requirement — an exam board's pixel dimensions, a visa photo size, a file size range — we record the source and the date we last checked it. Pages that carry a specification we have not been able to verify against a primary source say so on the page. Requirements change between application cycles, so the official notification for your exam or application always wins.

Corrections

If a figure here is wrong, or a specification has changed, tell us and we will fix it and re-run the measurements. Write to business@onlineaitool.com.