How Browser-Based Image Conversion Works, Step by Step
A browser already contains image decoders and encoders, so a web page can convert pictures locally: it asks the browser to decode your file, draw it, and write it out in another format. Your files never need to leave the device.
By the Universal Image Converter Team
One file's journey, in five steps
- Selection. When you pick or drop a file, the browser hands the page a reference to it. The page reads the bytes from your disk into memory; no network request is involved.
- Decoding. The browser's own decoder turns the file into a bitmap, a plain grid of pixels. This is where unsupported formats fail. If your browser cannot decode a format (HEIC in most browsers, for example), the page never gets pixels to work with.
- Drawing. The page draws the bitmap onto a canvas, an in-memory drawing surface, at the target size. The photo's orientation tag was already applied when it was decoded. If the output format cannot hold transparency, the page first paints the chosen background color, then draws the picture over it.
- Encoding. The page asks the canvas for its contents as a file of a given type, passing a quality value for lossy types. The browser's encoder produces JPEG, PNG or WebP bytes.
- Delivery. The bytes become a downloadable object in memory. For a batch, the page assembles a ZIP in memory, too.
Every step runs in the tab using code the browser already ships. The page's own script only orchestrates, which is why a conversion needs no account and no waiting for a remote machine: your computer or phone does the whole job, and its speed decides how quick it is.
Why nothing has to be uploaded
A server-side converter needs your file because the decoding and encoding code lives on its machines. In a browser the same capabilities are built in, so there is nothing to send. The page and its scripts are downloaded when you open the site; after that, the work happens locally, and once the page is loaded it keeps working with the connection switched off.
You can check this yourself instead of trusting a claim. Open your browser's developer tools (usually F12, or through the browser menu), switch to the Network tab, convert a picture, and look at the requests. Other requests, such as fonts or advertising, may appear, but none should carry a body the size of your image. Even simpler: load the page, turn off Wi-Fi or enable airplane mode, and convert again. If it still works, it cannot be uploading.
The 16.8 megapixel ceiling and how it is handled
Browsers limit the area of a canvas. Safari on iPhone and iPad has long limited a canvas to 16,777,216 pixels in total, which is exactly 4096 x 4096 (newer iOS versions are reported to allow more, but older devices and versions keep this limit). The converter scales down any image above about 16.8 megapixels so the same page works on every browser, including Safari on iPhone and iPad. Other browsers permit larger canvases, but one safe limit means predictable behavior everywhere.
Here is the arithmetic for common cameras.
- A 12-megapixel photo (4000 x 3000 = 12,000,000 pixels) is under the limit and passes at full size.
- A 24-megapixel photo (6000 x 4000 = 24,000,000 pixels) is over it. The scale factor is the square root of 16,777,216 / 24,000,000, about 0.836, giving roughly 5,016 x 3,344 pixels.
The limit exists partly because of memory: a canvas stores about four bytes per pixel, so a full-size one is 16,777,216 x 4 = 67,108,864 bytes, around 67 MB, for one picture. The converter's output cap for WebP, 16,383 pixels per side, rarely matters, since an extreme panorama of 16,383 x 1,024 pixels (16,776,192 in total) only just fits under the area limit.
Special cases in the pipeline
Not every input follows the photo route. An SVG is not a grid of pixels at all, so the browser has to draw it first: the converter renders it at the size chosen in its maximum-size setting, or at the dimensions written into the file, or, failing both, at 1024 pixels along the longer edge. A HEIC photo needs a HEIC decoder, which the page does not carry; it works only where the browser or operating system supplies one, meaning, in practice, Apple's Safari on its phones, tablets and computers; see how to convert HEIC to JPG. And because nothing is sent anywhere, changing a setting simply re-runs the same local steps on every file in the list, with no waiting for a server.
Why encoders differ between browsers
Because each browser supplies its own encoder, identical settings can produce different bytes in different browsers. The quality value passed to the canvas is a number between 0 and 1, meaningful for the lossy types (JPEG, WebP) and irrelevant to PNG. Browsers may also differ in whether they can encode WebP at all. The web standard says only that PNG is required and that others are optional, and an unsupported request is answered with a PNG instead. That is why some browsers, Safari among them, cannot write WebP at all; the converter then leaves WebP out of its format list, which converting images to WebP explains.
The practical lesson: if file sizes matter, trust the two sizes listed for each result, not the number on the slider.
What re-creating from pixels means
Because the output is built from decoded pixels rather than edited in place, anything that is not a pixel is not carried across. Camera and location tags disappear, as described in EXIF metadata and privacy. Colors are converted to the browser's sRGB, which is why you see no profile in the result, covered in the color profile guide. And transparent regions have to be filled when the output cannot store them.
When local conversion struggles
Everything happens inside the tab's memory, so memory is the limit. Each decoded picture takes about four bytes per pixel: a 12-megapixel photo is 48,000,000 bytes (48 MB) while it is being processed, a 24-megapixel one 96,000,000. Phones have less to spare than desktops. The table lists the usual symptoms.
| Symptom | Likely cause | What to do |
|---|---|---|
| This file is reported as unreadable | The browser has no decoder for that format | Open the page in a browser that can decode it, such as Safari for HEIC |
| Output is smaller in pixels than the source | The source is above about 16.8 megapixels, or a maximum size is set | Check the maximum size setting; accept the downscale or reduce beforehand |
| The tab slows or reloads during a large batch | Memory pressure from many large images | Convert in smaller groups; see converting many images at once |
| WebP is missing from the format list | The browser cannot encode WebP (Safari, for example) | Try Chrome, Firefox or Edge, or choose JPEG |
Want to see it work with no connection? Load the converter, switch the network off, and convert a picture.
Open the image converter