How to make an image 300 DPI

By Sucheet BoppanaPublished Updated

“300 DPI” names two different jobs, and only one of them changes the picture. Relabelling writes the number into the file’s resolution record and leaves every pixel alone: in a measured run, a 1600 × 1067 JPEG with no resolution recorded came back recording 300 DPI, still 1600 × 1067 pixels and 18 bytes larger. Resizing for print changes the pixels to fit a size on paper: 35 × 45 mm at 300 DPI came back as 413 × 531 pixels with 300 DPI recorded. Which job you need depends on whether the file already has enough pixels for the print.

Methodology

Both rows came from driving the real pages in a real browser. Chromium opened the DPI page with a sample JPEG and set 300, and separately opened the image size fitter with a sample portrait and a size in millimetres at 300 DPI; each time it caught the download, and sharp — an image library independent of the browser — read the width, the height and the recorded resolution back. The sentence quoted below is the one the DPI page printed.

The build and the machine: commit 67ee60b, Chromium 151.0.7922.34, Node v22.23.3, on an Apple M1 Pro running darwin 25.5.0 arm64, measured on October 6, 2026.

The run measured a production build that was already being served, and the benchmark drove it from a separate process. Both samples are synthetic, drawn by a script rather than photographed, and saved as fixed files, so every run measures the same files.

Two jobs share one name

A print shop, a journal or an upload form that asks for 300 DPI usually means one thing: enough detail for the paper. A file can be made to say 300 without having that detail, and it can be given that detail along with the label. The two jobs look alike from outside and do opposite things to the picture.

The two jobs called “make it 300 DPI”, measured. They start from different test pictures, so read each row on its own.
JobPixels before → afterDPI recorded afterFile size before → afterPicture changed?
Relabel the file (landscape test scene)1600 × 1067 → 1600 × 1067300384.2 KB → 384.21 KBNo — the compressed picture data is copied as it was
Resize for a print size (portrait test figure)1200 × 1600 → 413 × 53130043.74 KB → 7.42 KBYes — cropped to the print’s shape, resampled and encoded again

What writing 300 into a file changes

The DPI page reported, word for word: “This file had no resolution recorded. It now says 300 × 300 DPI. A JFIF header was added as well. The picture is still 1600 × 1067 pixels. The compressed picture data is the same bytes you gave it; only the header changed. The file is 18 bytes larger, which is the resolution record itself, not a change to the picture. The JFIF header now says 300 DPI. At 300 DPI it prints at 5.33 × 3.56 in (13.5 × 9.0 cm).”

So the pixels stay exactly as they were, and only the size the file claims on paper moves: read at 72, 1600 × 1067 pixels claim 22.22 × 14.82 in; at 300 they claim 5.33 × 3.56 in. That is the right job when the picture already has enough pixels for the size it will be printed at, and the receiver only checks the number.

Does a higher DPI make a picture sharper?

Not by itself. Relabelling spreads the same pixels over less paper, so the print gets smaller and denser rather than more detailed. Sharpness on paper comes from having enough pixels for the size you print at, and a picture without them stays soft whatever its header says.

Making a small picture larger reaches a bigger pixel count by enlarging, which spreads the same detail thinner and cannot invent what the camera never recorded. The honest routes to a large sharp print are a larger original or a smaller print.

How many pixels 300 DPI asks for

Multiply each side in inches by 300; for millimetres, divide by 25.4 first. The common sizes below are worked out with the same conversion the site’s print tools use.

Pixels a print needs at 300 DPI
Print sizePixels at 300 DPI
4 × 6 in1200 × 1800
5 × 7 in1500 × 2100
Letter (8.5 × 11 in)2550 × 3300
A4 (210 × 297 mm)2480 × 3508

Doing either job without Photoshop

Both jobs run in a browser tab on this site, on your own device. To write the number without touching a pixel, use Change image DPI, which works on JPEG and PNG. To give a picture the pixels a print size needs, with the DPI written in, use resize for print, which takes centimetres, millimetres or inches.

Neither job writes a DPI into a WebP. The DPI page opens only JPEG and PNG, and resize for print uses the DPI to work out the pixels but leaves it out of a WebP it saves. Save as JPEG or PNG when the resolution has to travel with the file.

Where to go next

  • Change Image DPI — Write 300 into a JPEG or PNG without touching a pixel, when the pixel count is already enough.
  • Resize for print — Give a picture the pixels a print size needs at 300 DPI, with the DPI written into the file.
  • Image Metadata Viewer — Check which DPI a file already records, and which part of the file the number is stored in.

Frequently asked questions

  • Is 72 DPI bad quality?

    No. It is the number most software shows when a file records none, and it describes paper, not the picture. Two files with the same pixels have the same detail whether they say 72 or 300; only the size they would print at differs.

  • Why does my picture still look blurry at 300 DPI?

    Because the label changed and the pixels did not. If the picture has too few pixels for the size it is printed at, writing 300 into it only makes the print smaller. A sharper large print needs more pixels from the source.

  • Can a PNG or a WebP be 300 DPI?

    A PNG can: it keeps its resolution in a small chunk of its own, and both jobs above write it. A WebP has no chunk like that, so a DPI can travel in one only inside its metadata, and neither job writes a DPI into a WebP: the DPI page does not open one, and resize for print leaves the DPI out of the WebP it saves, so that file carries the pixels and no print size.

  • Do I need Photoshop to make an image 300 DPI?

    No. Either job runs in a browser: one rewrites the number and copies the picture data as it was, the other resizes to a print size and writes the number in. Neither sends the file anywhere.