비트맵 이미지의 해상도 DPM, DPI (비트맵 분석 #7)

윤찬호·2022년 11월 18일
0

이미지포맷

목록 보기
7/11

해상도 (DPM, DPI)

비트맵 정보 헤더(DIB)를 보면 biXPelsPerMeter, biYPelsPerMeter항목이 있다. 비트맵 이미지의 가로(세로) 해상도를 나타내는 값으로 DPM이라고 표현한다.

DPM은 Dots Per Meter의 약자로 1미터 안에 들어갈 수 있는 점의 갯수를 나타낸다.
DPI는 Dots Per Inch의 약자로 1인치 안에 들어갈 수 있는 점의 갯수를 나타낸다.

윈도우 vs 맥

윈도우 운영체제는 기본 dpi를 96dpi로 설정한다.
운영체제는 기본 dpi를 72dpi로 설정한다.

따라서 똑같은 비트맵 이미지여도 윈도우에서 보는 것과 맥에서 보는 것의 차이가 발생한다.

윈도우에서 그림판을 통해 만든 1비트 비트맵 이미지의 비트맵 정보 헤더를 살펴보면 biXPelsPerMeter, biYPelsPerMeter의 값이 0으로 되어 있다. DPM값이 0으로 표현되어 있지만, 그림판에서 해당 이미지를 열고 '이미지 속성'을 확인해 보면 해상도가 96DPI로 되어 있다.

확인이 필요한 사항
biXPelsPerMeter 항목이 0으로 설정된 경우 운영체제의 기본 해상도를 따라 가는 것인가?
즉, MAC에서 해당 이미지의 해상도를 확인했을때는 96DPI로 인식하는가?

이미지의 해상도가 중요한 이유

DPI(또는 DPM)가 중요한 이유는 DPI에 따라 이미지의 크기가 다르게 표현되기 때문이다.
예를 들어, 72dpi에서 10cm로 표현되던 이미지가 300dpi에서는 2cm로 표현될 수 있다.

포토샵을 이용해서 100x100크기의 72dpi, 96dpi의 1비트 비트맵 이미지를 만들고 확인해보자.

윈도우에서 기본적으로 설치된 '사진'프로그램에서는 두 비트맵 이미지의 크기 차이를 느끼기 어렵다.

워드에서 두 비트맵 이미지를 삽입하고 크기를 비교하자. 이때 중요한 것은, 삽입된 이미지를 우클릭 - '크기 및 위치' 선택 - '원래대로'를 클릭해야 한다.

96dpi의 이미지는 '원래크기' 2.65cm x 2.65cm 로 나오고
72dpi의 이미지는 '원래크기' 3.53cm x 3.53cm 로 나온다.

즉 72dpi로 만들어진 이미지가 96dpi로 만들어진 이미지 보다 더 크게 표현되는 것이다.

DPM ↔ DPI

DPM: Dots Per Meter
DPI: Dots Per Inch

1 meter = 39.37007874 inch

1 dpm = 1(m) / 39.37007874(inch) ≒ 0.0254 dpi

DPI = DPM / 39.370078 또는 DPI = DPM * 0.0254
DPM = DPI * 39.370078 또는 DPM = DPI / 0.0254

ex) 96 dpi를 dpm으로 변환하기
dpm = 96(dpi) * 39.370078 ≒ 3779

ex2) 23622 dpm을 dpi로 변환하기
dpi = 23622(dpm) / 39.370078 = 599.9988...
dpi = 23622(dpm) x 0.0254 = 599.9988

출력되는 이미지의 실제 크기 구하기

dpm(또는 dpi)값이 있는 비트맵 이미지를 윈도우에서 출력하기

기본적으로 윈도우 에서는 96dpi로 출력하기 때문에 해당 이미지의 dpi로 변환이 필요하다!

ex) 300dpi 의 100x100px 비트맵 이미지를 윈도우에서 실제 출력할때의 크기

realPx=px/(dpi/96)100/(300/96)=32pxrealPx = px / (dpi / 96) → 100 / (300 / 96) = 32px

즉, 100x100px의 이미지를 윈도우 모니터에서 정상적인 크기로 출력을 하려면 32x32px 로 크기를 조절해 주어야 한다.

pt 단위로 변환을 하는 경우 아래와 같다.

realPt=px/(dpi/72)100/(300/72)=24ptrealPt = px / (dpi / 72) → 100 / (300 / 72) = 24pt

1 Inch = 72 pt
1 px = 0.75 pt
1 pt = 1.333..px

위에 공식에 의해 다음과 같이 계산할 수도 있다. 32px0.75=2432px * 0.75 = 24

px단위의 비트맵 이미지를 mm단위로 변환하기

dpi를 통해 1px이 몇 mm인지 구한다

1px=(25.4/dpi)mm1px = (25.4 / dpi) mm (1 inch = 25.4 mm )

Apx=A(25.4/dpi)mmApx = A * (25.4 / dpi) mm

Apx=A(25.4/(dpm/39.370079))mmApx = A * (25.4 / (dpm / 39.370079)) mm

보통 비트맵 헤더에서 dpm 정보를 얻을 수 있으므로 dpm을 이용해서 바로 계산할 수 있다.

biXPelsPerMeter, biYPelsPerMeter 값이 0으로 표현되면 윈도우의 경우 96 dpi로 계산한다.

ex) 100x100 px, 96 dpi
100px=100(25.4/96)mm26.4583100px = 100 * (25.4 / 96)mm ≒ 26.4583

이 값은 위에서 살펴봤던 (이미지의 해상도가 중요한 이유) 96dpi 이미지의 원래 크기와 일치하는 값이다.

0개의 댓글