DPI Converter
Change the resolution your image declares for print. Retag the file and leave every pixel exactly where it is, or resample so the physical size stays the same at the new density.
Drag & drop a file here, Ctrl+V to paste, oror
DPI is a label, not detail
Setting a file to 300 DPI writes a number into a header. It adds no pixels and cannot make a small image print sharply — it only changes how large the same pixels are told to print. If your photo is 600×400, retagging it will not rescue an A4 poster, and no tool that says otherwise is telling you the truth. To check whether a file has the pixels for a given print size, use the Print Readiness Scanner.
A retag edits bytes, not pixels
Most browser tools "save at 300 DPI" by pushing the image through a canvas, which quietly drops EXIF, ICC and everything else and recompresses the picture. Retag here patches the density field inside your original file and copies every other byte through untouched. Resampling and format changes do re-encode — and the line above the button says which one just happened.
100% private
Your image never leaves your device. The file is read as bytes in your browser, the density field is written locally, and the download is built on your machine. No upload, no storage, no account.
How it works
What DPI actually is, and what it is not
Dots per inch is not a property of your pixels. It is a number written into the file's header that tells whatever prints the image how large each pixel should be, and print size is simply pixels divided by that number. So a 1800×1200 photo declared at 300 DPI prints at six by four inches, and the same file declared at 72 DPI prints at twenty-five by sixteen — identical pixels, different instruction. This matters because raising the number adds nothing to the picture. A tool advertising that it converts an image to 300 DPI for better quality is describing a header edit as an improvement. Whether a file can print acceptably at a size is decided by its pixel count and nothing else, which is the question our Print Readiness Scanner answers.
Two operations, named separately
Because DPI and pixel count are linked by print size, there are exactly two honest answers to “make this 300 DPI”, and this page offers both rather than choosing one quietly. Retag only writes the new density and touches nothing else: every pixel stays where it was, the file stays the same size on disk, and the printed dimensions change. Resample holds the printed dimensions and changes the pixel count instead, scaling the image by the ratio between the old and new densities. That second path adds pixels when it scales up, and interpolated pixels are not recovered detail — the picture gets bigger, not sharper. The line above the download button states which operation ran, the pixel dimensions coming out, and whether the pixels were re-encoded.
A retag is a byte patch, not a canvas round trip
The common way to set DPI in a browser is to draw the image onto a canvas and export it. That silently discards EXIF, any ICC colour profile, and every other piece of metadata in the file, and it recompresses the picture — so “I only changed the DPI” has in fact rewritten the photograph. Here a retag locates the density field inside your original bytes and edits it in place, copying everything else through unchanged. In a JPEG that means the JFIF density fields in the APP0 segment, and the EXIF XResolution, YResolution and ResolutionUnit tags patched at their own offsets so the segment never changes length; when a file has no APP0 at all, a minimal one is inserted. In a PNG it means the pHYs chunk, replaced rather than duplicated, since two pHYs chunks make the density depend on which one a reader meets first. Re-encoding happens only where it is unavoidable — a resample, or a change of container — and is labelled as such.
One JPEG, two densities, and a rounding you should see
A JPEG can declare its resolution twice: once in the JFIF header and again in EXIF. Nothing keeps them in agreement, and software disagrees about which one wins, so a file that has passed through a few editors can genuinely tell two different programs two different numbers. Both are read and reported here as separate rows, a disagreement is flagged instead of resolved silently, and a retag writes both — or tells you plainly when the EXIF tags are absent and only JFIF could be reached. PNG carries its own quirk: the pHYs chunk stores pixels per metre as a whole number, so 300 DPI is stored as 11811 and reads back as 299.99. The page prints the density that will actually be read out of the finished file rather than the one you typed. Only JPEG and PNG have a density field this tool writes; a WebP or GIF can still be converted to one of them, but that is a conversion and is named as one. For format changes on their own, see the Format Converter, and for changing pixel dimensions directly, the Image Resizer. Everything runs in your browser: the file is never uploaded, nothing is stored, and no account is needed.