The 16.7 MP Working Copy
The editor works on at most 16.7 MP of any photo (2^24 px, the area of 4096 × 4096). A larger photo is scaled down once, when it opens, keeping its ratio.
The screen, Auto, smart crop, the thumbnails and the export all use that copy. It’s the same in every browser, for two reasons:
- Memory on phones. A full 48 MP photo takes more memory than a phone’s browser tab may get.
- Parity with the legacy editor, which always worked at this size in Safari and on iOS.
What Your Code Sees
Editor.tsx
Memory
Measured on WebKit standing in for an iPhone 15, a 48 MP photo:
The full file is still decoded once when it opens, which adds 0.29 GB to the opening peak and about 0.15 s before
onLoad.
Phones
Phones shoot 12 to 48 MP. To get smaller files from them, setmaxWidth and maxHeight lower. The export renders straight at that size.
Upload.tsx
- A HEIC from a phone saves as PNG unless
outputTypesays otherwise. - Safari decodes HEIC itself. Chromium and Firefox, Android’s included, use a bundled decoder that loads only for a HEIC, in a background worker. A 48 MP HEIC takes about 8 s on a fast laptop, longer on a phone.
- Every gesture works with a finger, and controls reach at least 44 × 44 px under a finger.
Crop & Aspect Ratio
Output size and type props.
Process Without UI
Units in processImage.