Change an image's DPI tag for printing

The print shop asked for 300 DPI — the fix is a metadata tag, not a resize. Read and rewrite DPI on JPEG/PNG without touching pixels.

Tools used in this guide

The job

DPI (dots per inch) is a tag saying how big the pixels print. A 3,000 px image at 300 DPI prints 10 inches; the same file tagged 72 DPI claims 41 inches — identical pixels, different paper size. Rewriting the tag is often all a 'must be 300 DPI' request needs.

Read, then write

Drop a JPEG or PNG to read its stored DPI (many files store none — the viewer defaults to 72 or 96). Enter the new DPI, download the retagged file. Pixels are copied byte for byte; only the density field changes.

Worked example

A 2,400×3,000 px photo tagged 72 DPI 'prints' at 33×42 inches — huge and blurry by implication. Retag to 300 DPI and it claims 8×10 inches — the exact same pixels, now described honestly for a print pipeline.

Where it stops

JPEG JFIF density and PNG pHYs only — no EXIF-DPI, no WebP, ≤ 25 MiB. DPI never adds detail: a 400 px image at 300 DPI prints postage-stamp size. For bigger prints you need more pixels, not more DPI.