How this works

Your file is opened by the browser you are already using. It is never sent anywhere.

Below is what actually runs, in the order it runs, and how to check it yourself in under a minute.

The file is read, not uploaded

Dropping a file gives the page a File object. It is read into memory in this tab with the File API. There is no request carrying it, because there is nowhere for it to go: the site is static files on a CDN, with no server code to receive anything.

  • File and Blob for the bytes, FileReader and arrayBuffer to read them
  • Drag and drop, the file picker and paste all hand over the same object
  • The build refuses to ship if a page gains a fetch, an upload, a form action or an API route

Decoding happens in the tab

A camera or a design app writes formats the browser cannot open on its own, so the decoder ships with the page and runs beside it.

  • HEIC and HEIF: a JavaScript build of libheif, served from this origin
  • PDF: PDF.js, which uses WebAssembly for some of the image codecs inside a PDF
  • SVG tracing: ImageTracer; QR reading: jsQR; PDF writing: pdf-lib
  • Every library is downloaded at build time and served from this domain, so no third-party CDN sees your visit

The work runs on a canvas, in a worker

Resizing, compressing and converting are canvas operations. They run inside a Web Worker so a large photo does not freeze the page you are looking at.

  • OffscreenCanvas in a worker draws and re-encodes each image
  • convertToBlob produces the JPG, PNG or WebP, with quality you set
  • PNG compression uses a median-cut palette written for this site, not a library
  • Nothing about the file — name, size, contents, or anything derived from them — is measured or reported

The result is made here too

What you download is a Blob assembled in this tab and handed to the browser as an object URL. It has never existed anywhere else.

  • One file at a time, or a ZIP built in the tab
  • Close the tab and the result is gone; nothing is stored to come back to

Check it yourself

Do not take this page's word for it. Two ways to see it, both under a minute.

  • Open DevTools, go to the Network tab, then convert a file. Nothing carrying your file leaves.
  • Load the page, turn off your network, then use the tool. It still works.
  • Read the source: everything running here is plain files you can view.

On-device and upload-based tools, side by side

Both kinds of tool exist and both are legitimate. The difference is where your file goes, and that difference decides what has to be trusted.

On your deviceUploaded to a server
Where the file goesStays in the tabTravels to a server
RetentionNothing to retainUsually deleted after a set window
Works offlineYes, once the page has loadedNo
File size limitYour device's memoryWhatever the service allows
What you have to trustWhat the page does, which you can watchWhat the service says it does

Every tool, same rules

All of them work this way. Nothing here has a paid tier, an account, or a file that leaves.

ImagePDFConvertTextQRCalculatorTimeDateColorDeveloperFinanceHealthAll tools