현수막이나 명함을 맡기면 "300DPI 이상으로 주세요"라는 답이 옵니다. 이미지 편집 프로그램에서 해상도 칸을 300으로 고쳐 저장하고 다시 보내는 분들이 많습니다.
그런데 그렇게 저장한 파일은 보내기 전과 완전히 같은 파일입니다. 픽셀도 그대로고 용량도 그대로입니다. 같은 이미지를 dpi만 다르게 세 번 저장하고 무엇이 달라졌는지 직접 재 봤습니다.

세 파일이 바이트 하나까지 같았습니다
가로 3000, 세로 2000 픽셀짜리 이미지를 만들어 두고, 압축 품질을 90으로 고정한 채 dpi만 72, 150, 300으로 바꿔 저장했습니다.
| 저장한 dpi | 픽셀 수 | 파일 크기 | 인쇄되는 크기 |
|---|---|---|---|
| 72 | 3000 x 2000 | 535,119 B | 105.8 x 70.6 cm |
| 150 | 3000 x 2000 | 535,119 B | 50.8 x 33.9 cm |
| 300 | 3000 x 2000 | 535,119 B | 25.4 x 16.9 cm |
픽셀 수도 파일 크기도 세 줄이 똑같습니다. 535,119바이트에서 1바이트도 움직이지 않았습니다. 달라진 것은 파일 안에 적힌 dpi 숫자 하나뿐입니다.
그리고 그 숫자를 올릴수록 인쇄되는 크기가 오히려 작아집니다. 72로 저장하면 1미터가 넘는 대형 출력이 되고, 300으로 저장하면 A4보다 조금 큰 크기가 됩니다. 화질이 좋아지는 것이 아니라 같은 점을 더 좁은 자리에 몰아 찍는 것입니다.
dpi는 사진의 성질이 아니라 인쇄 지시서입니다
dpi는 dots per inch, 1인치 안에 점을 몇 개 찍을지를 뜻합니다. 여기서 중요한 것은 이 값이 사진 데이터에 관여하지 않는다는 점입니다. 사진 파일에 실제로 들어 있는 것은 색이 있는 점의 격자, 곧 픽셀뿐입니다.
dpi는 그 격자를 종이에 옮길 때 얼마나 촘촘하게 찍을지 인쇄기에 남기는 메모에 가깝습니다. 그래서 화면으로 볼 때는 dpi가 몇이든 아무 차이가 없고, 종이로 나갈 때만 크기를 정하는 데 쓰입니다. 관계는 나눗셈 하나로 끝납니다.
인쇄 크기(인치) = 픽셀 수 ÷ dpi
3000 ÷ 300 = 10.0 인치 = 25.4 cm
3000 ÷ 150 = 20.0 인치 = 50.8 cm
3000 ÷ 72 = 41.7 인치 = 105.8 cm
분자가 픽셀입니다. 분자를 그대로 두고 분모만 키웠으니 결과가 작아지는 것이 당연합니다.
그러면 인쇄소가 요구하는 것은 무엇인가
인쇄소가 300DPI를 말할 때 실제로 요구하는 것은 원하는 인쇄 크기를 300dpi로 채울 만큼의 픽셀입니다. dpi 숫자가 아니라 픽셀 수입니다.
필요한 픽셀은 위 식을 뒤집으면 바로 나옵니다. 예를 들어 10 x 15cm 사진을 300dpi로 뽑으려면 1772 x 1181 픽셀이 필요합니다. 가진 사진이 이보다 크면 문제가 없고, 작으면 dpi를 아무리 고쳐 적어도 해결되지 않습니다.
자주 쓰는 크기의 기준을 정리하면 이렇습니다.
| 인쇄 크기 | 300dpi에 필요한 픽셀 | 흔한 스마트폰 사진으로 |
|---|---|---|
| 명함 9 x 5 cm | 1063 x 591 | 충분함 |
| 사진 10 x 15 cm | 1772 x 1181 | 충분함 |
| A4 29.7 x 21 cm | 3508 x 2480 | 기종에 따라 아슬아슬함 |
표의 픽셀 값은 센티미터를 인치로 바꾼 뒤 300을 곱해 계산한 것입니다. 인쇄소마다 여백과 재단 규격이 달라 실제 요구치는 조금 더 클 수 있습니다.
내 사진이 되는지 30초 안에 확인하기
파일을 마우스 오른쪽 버튼으로 눌러 속성으로 들어가면 자세히 탭에 가로 크기와 세로 크기가 픽셀 단위로 나옵니다. 그 두 숫자를 원하는 인쇄 크기의 인치 값으로 나누면 실제 dpi가 됩니다.
여러 장을 한꺼번에 봐야 한다면 아래 코드로 폴더째 확인할 수 있습니다. 사진마다 300dpi 기준으로 몇 센티미터까지 뽑을 수 있는지 계산해 줍니다.
import glob
from PIL import Image
for path in glob.glob("photos/*.jpg"):
with Image.open(path) as im:
w, h = im.size
print(f"{path} {w}x{h} -> 300dpi 로 최대 "
f"{w / 300 * 2.54:.1f} x {h / 300 * 2.54:.1f} cm")
계산 결과가 원하는 크기보다 작다면 방법은 하나입니다. 더 큰 원본을 구하거나, 사진을 찍은 기기에서 원본 크기로 다시 내려받는 것입니다. 이미 작아진 사진을 늘려서 픽셀을 만들어 내면 인쇄물에서 윤곽이 뭉개져 보입니다.
같이 헷갈리는 값들
해상도라는 말이 픽셀 수를 가리킬 때도 있고 dpi를 가리킬 때도 있어서 혼란이 커집니다. 용량을 줄일 때 픽셀을 줄이는 것과 압축률을 낮추는 것 중 무엇이 효율적인지는 해상도와 화질을 각각 조절해 재 본 글에서 다뤘습니다. 파일 이름 뒤의 확장자를 고쳐도 내용은 바뀌지 않는다는 점에서, 확장자만 바꾸면 변환되는지 확인한 글과 성격이 같은 오해이기도 합니다.
인쇄소에 파일을 보내기 전에 dpi 칸을 고치는 대신, 사진 속성에서 픽셀 수부터 확인해 보세요. 그 숫자 하나면 원하는 크기로 뽑을 수 있는지 없는지가 결정됩니다.
위 크기와 바이트는 윈도우 11에서 파이썬 3.14.6과 Pillow 12.2.0으로 같은 이미지를 dpi만 바꿔 세 번 저장한 뒤 다시 읽어 얻은 값입니다. 압축 품질은 90으로 고정했습니다.
'파일 형식 백과사전' 카테고리의 다른 글
| 화면 캡처 PNG가 유독 무거울 때, 색 수를 줄여 절반으로 (0) | 2026.09.24 |
|---|---|
| 화면에서 쨍하던 초록이 인쇄물에서 칙칙해지는 이유 (0) | 2026.09.24 |
| 사진 수십 장을 한 장씩 WebP로 바꾸고 계신가요, 폴더째 한 번에 변환하는 법 (0) | 2026.09.24 |
| 한글 웹폰트가 무거워 사이트가 느릴 때, 쓰는 글자만 남기기 (0) | 2026.09.23 |
| 워드에 넣은 사진, 문서에서 줄여 두면 파일도 같이 줄어들까? (0) | 2026.09.23 |