What is actually in the file
A current phone camera captures around 12 megapixels — roughly 4000 × 3000, or twelve million individual colour readings. Stored without compression that would be about 36 MB. The camera compresses it to somewhere between 2 and 8 MB depending on the scene.
Scene content matters more than people expect. A photograph of a plain wall might come out at 1.5 MB; the same camera pointed at a tree can produce 8 MB, because foliage is millions of tiny distinct details and compression works by finding predictable patterns. Detail is the absence of predictability.
On top of the picture itself, a modern photo file may carry:
- An HDR gain map — extra brightness information so the photo can display with greater range on capable screens.
- A depth map, on portrait-mode shots, describing how far away each part of the scene is so the background blur can be re-edited later.
- A short video, if it is a Live Photo — technically stored alongside the image rather than inside it, but it travels with it.
- Metadata — GPS coordinates, timestamp, camera settings. Small in bytes, significant in what it reveals.
Why the limits have not moved
Most upload limits were set when a digital photo was 1–2 megapixels and a 500 KB cap was generous. Phone cameras have improved roughly tenfold since; the forms have not changed at all. Government portals in particular tend to run on systems that are a decade or more old, which is why they have the tightest limits — often 100–300 KB, sometimes with pixel dimensions specified as well.
You are not doing anything wrong. The gap is real, it is widening, and it is why compressing before uploading has become a routine step rather than an occasional one.
The HEIC complication
If you use an iPhone, your photos are probably saved as HEIC rather than JPEG. HEIC is genuinely better technology — roughly half the size of a JPEG at the same quality — but almost nothing outside Apple's ecosystem can open it. Windows needs a separate codec, and most upload forms reject the format outright.
Two ways out. Convert the file when you need to (HEIC to JPG), or stop it happening at the source: Settings → Camera → Formats → Most Compatible. That saves JPEG from then on. Your photos will be roughly twice the size in bytes, but everything will open them.
Changing it at the source
If you regularly need smaller files, some of this is adjustable before you take the photo:
- iPhone: Settings → Camera → Formats. "Most Compatible" gives JPEG. Turning off Live Photos in the camera app removes the attached video.
- Android: most camera apps expose a resolution setting — dropping from the maximum to a mid setting typically quarters the file size. Some also offer a quality/size choice separately.
- Both: if a photo exists purely to be uploaded to a form, a screenshot of it is sometimes smaller than the original, though the quality will be worse.
Be careful with the resolution setting if the photos also matter as memories. Detail you never capture cannot be recovered, whereas a large file can always be compressed later. Shooting large and compressing copies is usually the right trade.
What to do with the photo you already have
Do not re-take it and do not overwrite the original. Compress a copy to whatever limit you have been given, keeping the original on your phone. The compress-to-a-size tool takes the limit directly — "100 KB", "2 MB" — and finds the highest quality that fits underneath it, reducing dimensions only if quality alone cannot get there.
A typical result: a 5 MB phone photo compressed to a 500 KB limit keeps full resolution and is essentially indistinguishable at normal viewing size. The same photo forced under 100 KB will usually need its dimensions reduced too, and that is the point at which the limit is genuinely costing you something.