01
The file stays on your device
A local converter first receives a File object from the file picker, drag-and-drop, or clipboard. JavaScript can read that file inside the current page without sending it over the network. The original remains on the device unless the website explicitly performs an upload request.
02
Decode, draw, and encode
The browser decodes the source into pixels, draws those pixels to Canvas, and asks Canvas to encode a new Blob such as JPG, PNG, or WebP. Quality, resize dimensions, crop coordinates, and the background for transparent pixels can be applied during this process. The downloaded file is newly encoded, not a renamed original.
03
Why local processing matters
Local processing reduces the amount of personal data that must leave the device and can begin without waiting for an upload. It also avoids storing source files on a conversion server. Large batches still use memory and CPU, so mobile browsers may need fewer files at a time.
04
Browser and format limitations
A browser can only decode and encode formats supported by its engine and operating system. JPG, PNG, and WebP are broadly practical, while HEIC and some AVIF workflows vary. Animated images, very large dimensions, or uncommon color models may also require specialized libraries or server-side processing.
05
What browsers often do not preserve
Canvas re-encoding commonly drops EXIF metadata, embedded previews, animation frames, some color profiles, and format-specific editing data. This can improve privacy and create a clean output, but it is not suitable when archival metadata or professional color fidelity must remain exact. Keep the source file as the master copy.