Why Your Screenshot Says 119.99 DPI — and Why You Can Change It
Short answer: the 119.99 DPI on your screenshot is stored in a PNG chunk called pHYs — it is not EXIF, and it is just metadata you can change or delete without altering a single pixel. We read four real Windows screenshots and ran a fresh local test: every one carried dpi = (119.9896, 119.9896) inside pHYs, with zero EXIF. The number is your display's logical DPI (about 120 DPI, the Windows default at 125% scaling) written as 4724 pixels-per-meter. For the full picture of what a screenshot keeps and drops, start at our main guide, do screenshots have exif data.
How we tested it (real bytes, not a guess)
We did not repeat a blog post. We used two sources of first-hand data.
1. Real Windows screenshots. On 2026-09-15 we byte-read four Snip & Sketch PNGs (filenames like 屏幕截图 2026-09-15 153403.png) with Pillow and walked every chunk. All four reported png_info['dpi'] = (119.9896, 119.9896), chunk list IHDR, sRGB, gAMA, pHYs, IDAT, IEND, has_eXIf_chunk = false, and piexif returned “Given file is neither JPEG nor TIFF”. The DPI is real, and it is in pHYs.
2. A fresh Pillow 12.3.0 + piexif 1.1.3 test. In a Python 3.13 venv we built an 800×600 RGB image and saved it three ways, then parsed the raw PNG bytes for the pHYs chunk and compared the pixel data. Every number below is from this run.
What the 119.99 DPI actually is
The pHYs chunk holds the image's physical pixel dimensions — pixels per unit, where the unit byte is 1 for meter (per the W3C PNG specification, REC-PNG-20031110, clause 11.3.6.3 “Physical pixel dimensions (pHYs)”; we cite the stable spec by identifier — the live fetch was unavailable at write time). It is the only place a screenshot stores a DPI figure.
| Saved with | info['dpi'] read back | pHYs raw (px/m X, Y, unit) | Chunks |
|---|---|---|---|
| dpi=(119.99,119.99) | (119.9896, 119.9896) | (4724, 4724, 1) | IHDR, pHYs, IDAT, IEND |
| dpi=(300,300) | (299.9994, 299.9994) | (11811, 11811, 1) | IHDR, pHYs, IDAT, IEND |
| no dpi | None | no pHYs chunk | IHDR, IDAT, IEND |
The real screenshots' 119.9896 matches our test's 4724 pixels-per-meter exactly: 4724 × 0.0254 = 119.9896 DPI (1 inch = 0.0254 m). For comparison, 120 DPI would be 120 / 0.0254 = 4724.4 px/m, so Windows writes the truncated integer of the display's logical DPI.
Where the 119.99 comes from
The proven part: the screenshot stores 4724 pixels-per-meter in pHYs, which reads back as 119.99 DPI. That is the screen's logical DPI, the same value Windows shows in Display settings, baked into the file by the capture encoder.
The inference (clearly labeled): 119.99 DPI is the floor of 120 DPI, and 120 = the Windows default 96 DPI at 125% display scaling (96 × 1.25). We did not capture the Display-settings panel in this run, so the 125%-scaling attribution is an inference from the arithmetic, not a measured reading. Whatever the exact scale, the mechanism is identical: the OS writes its logical DPI into pHYs as pixels-per-meter.
This is why the number is unrelated to the actual physical size of your monitor — it is a software DPI hint, not a measurement of the panel.
It is not EXIF
People often assume DPI is EXIF. It is not. In our test, piexif.load('a.png') raised “Given file is neither JPEG nor TIFF” — PNG has no EXIF block at all, so a screenshot's DPI can never live there. The four real screenshots confirmed it too: has_eXIf_chunk = false and piexif refused them as non-JPEG/non-TIFF.
This is the same reason the larger question resolves the way it does: as we cover in do screenshots have exif data, screenshot writers never emit an eXIf chunk, so every metadata value a screenshot carries — DPI, color profile, gamma — sits in ordinary PNG chunks like pHYs/sRGB/gAMA, never in EXIF.
You can change it — and the pixels don't move
The DPI is pure metadata. In the same test we confirmed it is editable and removable with zero effect on the image:
- Editable: saving the identical 800×600 image at
dpi=(300,300)producedpHYs = (11811, 11811, 1)— the chunk simply reports a different number. - Removable: saving with no
dpiargument dropped thepHYschunk entirely; the file becameIHDR, IDAT, IEND. - Pixels unchanged: comparing the raw pixel data of the 119.99, 300, and no-DPI versions returned
True— the three files differ only in container metadata, not in a single color value.
So if a tool or site reports your screenshot as 119.99 DPI, that is a relict of your display scaling stored in pHYs. Strip or rewrite pHYs and the number changes; the picture does not.
For a complete inventory of which container blocks a screenshot writes, see what metadata do screenshots have; for the filename-and-filesystem side of identity, see do screenshots have timestamps.
FAQ
Why does my screenshot say 119.99 DPI? The capture encoder wrote your display's logical DPI into the PNG pHYs chunk as 4724 pixels-per-meter, which reads back as 119.99 DPI. On a 125%-scaled display that is the floor of 120 DPI.
Is 119.99 DPI stored in EXIF? No. PNG has no EXIF block; piexif rejects screenshot PNGs as “neither JPEG nor TIFF.” The DPI lives only in the pHYs chunk.
Can I change the DPI of a screenshot? Yes. Saving the same image at a different dpi rewrites pHYs (we measured 300 DPI → 11811 px/m). Saving without dpi removes the chunk. The pixels are unchanged.
Does the 119.99 DPI reveal my monitor or location? No. It is a software DPI hint derived from display scaling, not a measurement of the physical panel, and it carries no GPS or device identity.
Is 119.99 DPI the same on every computer? No. It depends on that machine's display scaling. A 100%-scaled display stores 96 DPI (3779 px/m); a 150%-scaled one stores 144 DPI (5669 px/m). 119.99 is specific to ~125% scaling.
Does removing EXIF remove this DPI? There is no EXIF to remove. To drop the DPI you strip the pHYs chunk, which is a separate PNG operation from EXIF removal — see do screenshots have exif data for the EXIF side.
Related reading
If you are tracing what a screenshot keeps and drops, these are the next reads:
- Do screenshots have EXIF data? — the main guide: what a screenshot carries and what it drops.
- What metadata do screenshots have? — every PNG chunk, enumerated on real files.
- Does a PNG have EXIF data? — why PNG's container leaves EXIF out, and where DPI really sits.
- Do screenshots have timestamps? — where the time lives, and why it is not in the file.