Change an Image’s DPI
Some printers, print shops, and stock libraries will not accept a file unless it says 300 DPI, even though the number changes nothing about the image itself. This rewrites that number — the pHYs chunk in a PNG, the JFIF and Exif density fields in a JPEG — and copies every other byte through untouched, so no pixel is resampled and a JPEG takes no second lossy pass. The calculator alongside it does the arithmetic that actually decides whether your file is big enough to print: pixels against inches, centimetres, or millimetres at any DPI.
Drop a PNG or JPG
One file, up to 50.0 MB. Only the DPI field in the header is rewritten — the image data is copied through untouched, and nothing is uploaded.
Physical size
Drop a file above to see what it prints at, or use the calculator below — it works on its own.
At 300 DPI that needs 2,400 pixels across.
Changing the DPI does not add pixels. The saved file has exactly the pixels you dropped in and one number in its header rewritten — which is why it takes no time and costs no quality. If the calculator says you are short of pixels, the answer is a bigger source image, not a bigger number here.
Set the size before you export, not after
Design at the physical size you are printing at on a Moda canvas, and the DPI question disappears.
Try Moda free →DPI is a note in the file, not a property of the image
An image is a grid of pixels and nothing else. Its DPI is a separate number stored beside that grid saying how large the pixels are meant to be on paper, and every piece of print software reads it to pick a default placement size. Change it and the pixels are identical — the same file, laid out at a different default size. That is why "save it at 300 DPI to make it sharper" is backwards: at a fixed pixel count, raising the DPI makes the print *smaller*, not sharper, because the same pixels are being packed into fewer inches. The sharpness comes from having enough pixels, which is a question the calculator on this page answers and this field does not.
Exactly which bytes change
For a PNG it is the `pHYs` chunk: two 32-bit pixels-per-metre values and a unit byte, written before the image data with a fresh CRC, replacing an existing chunk or inserted if there was none. For a JPEG it is the JFIF `APP0` segment’s density unit and X/Y density — and, when the file also carries Exif, the `XResolution`, `YResolution`, and `ResolutionUnit` tags as well. That second part matters more than it sounds: Photoshop and several print workflows read Exif in preference to JFIF, so writing only one of the two produces a file that answers 300 in one program and 72 in another. The panel tells you which fields were written for your particular file.
Resampling is the other operation, and it is not this one
There are two ways to make an image print larger. Lower the DPI, which spreads the pixels you already have over more inches and eventually shows them; or resample, which invents new pixels by interpolating between the ones you have. Resampling is what an image resizer does, and it is a genuinely different operation with genuinely different results — it changes the pixel count, takes real time on a large file, and softens detail because the new pixels are guesses. Nothing on this page resamples. If the calculator tells you a file is short of pixels for the size you need, no DPI value will fix that, and upscaling is a trade rather than a solution.
Where the familiar numbers come from
300 DPI is the commercial print standard because it is roughly where a person holding a page stops resolving individual dots. 150 is normal for large-format work — a banner is read from metres away, so half the resolution is invisible and a quarter of the file size is not. 72 DPI is a leftover from early Macintosh screens and means nothing on modern displays; 96 is what Windows and the CSS `px` unit assume, which is why an image "at 96 DPI" tends to place at its nominal size in office software. 600 is for line art and text, where the eye is chasing edges rather than tones. Screens ignore all of it: a browser draws an image by its pixel dimensions and never reads this field.
Frequently asked questions
Does changing DPI improve image quality?
No, and it cannot. The saved file has exactly the pixels the original had — the only thing that changed is a number in the header saying how big they should be on paper. If the print looks soft, the file does not have enough pixels for the size it is being printed at, and the fix is a larger original or a smaller print, not a larger number here.
Why does my printer still ignore the DPI I set?
Usually because whatever placed the image overrode it. Word, InDesign, and most layout software use the DPI only to pick the *initial* size when an image is inserted; once it is on the page and has been resized, the frame wins and the DPI field has no further say. The number matters most as an acceptance check — a print shop or stock library refusing files under 300 DPI is reading this field — and as the default size on first placement.
Can I change the DPI of a WEBP, GIF, or HEIC?
No, and it is not a limitation of this tool: those formats have no standard field for it. WEBP, GIF, and BMP simply do not record a physical resolution, so print software falls back to its own default, typically 72 or 96. If a workflow requires a DPI, the file has to be a PNG or a JPEG — convert it first and then set the DPI on the result.
Is my image uploaded or re-encoded?
Neither. The file is read into this tab, the header field is rewritten in place, and the result is handed straight back — the image data is copied through byte for byte, so a JPEG does not go through another lossy compression pass just to change a number. Nothing is sent to a server at any point.
What size will my photo print at?
Divide the pixel dimensions by the DPI: a 3000×2000 photo at 300 DPI prints at 10×6.67 inches, and at 150 DPI the same file prints at 20×13.3 inches with no change to the pixels. The calculator on this page does it in both directions, including the one people actually need — given the size I want to print, how many pixels do I need, and does this file have them.