C #에서 픽셀을 포인트로 변환해야합니다. 주제에 대한 복잡한 설명을 보았지만 간단한 공식을 찾을 수없는 것 같습니다. 표준 96dpi를 가정 해 보겠습니다.이 변환을 어떻게 계산합니까?
답변
인치당 72 포인트 가 있습니다 . 인치당 96 픽셀을 가정하는 것으로 충분하다면 공식은 다소 간단합니다.
포인트 = 픽셀 * 72/96
을 사용하여 Windows에서 디스플레이의 인치당 구성된 픽셀을 가져 오는 방법이 있습니다 GetDeviceCaps
. Microsoft에는 “DPI 인식 응용 프로그램 개발” 이라는 가이드가 있습니다. “ DPI 인식 글꼴 만들기”섹션을 찾아보십시오.
W3C는 디스플레이의 실제 해상도에 관계없이 픽셀 측정 px
을 정확히 1/96의 1 인치 로 정의 했으므로 위의 공식은 모든 웹 작업에 적합해야합니다.
답변
코드가 양식에있는 경우 다음을 시도하십시오.
Graphics g = this.CreateGraphics();
points = pixels * 72 / g.DpiX;
g.Dispose();
답변
96dpi가 큰 실수 라고 가정합니다 . 가정이 맞더라도 글꼴 크기를 조정할 수있는 옵션도 있습니다. 따라서 10pt로 설정된 글꼴은 실제로 12.5pt (125 %) 인 것처럼 표시 될 수 있습니다.
답변
주어진 것으로 시작 :
- 1 인치에는 72 포인트가 있습니다 (즉, 1 인치의 1/72 포인트)
- 150dpi로 설정된 시스템에는 인치당 150 픽셀이 있습니다.
- 1 인치 = 72pt = 150px (150dpi 설정의 경우)
픽셀 (px)을 기준으로 포인트 (pt)를 찾으려면 :
72 pt x pt
------ = ----- (1) for 150dpi system
150 px y px
재정렬 :
x = (y/150) * 72 (2) for 150dpi system
그래서:
points = (pixels / 150) * 72 (3) for 150dpi system
답변
WPF는 System.Windows.FontSizeConverter를 사용하여 포인트를 픽셀로 변환합니다. FontSizeConverter는 System.Windows.LengthConverter를 사용합니다. LengthConverter는 계수 1.333333333333333333을 사용하여 포인트 (p)에서 픽셀 (x)로 변환합니다. x = p * 1.3333333333333333
답변
System.Drawing.Graphics에는 DpiX 및 DpiY 속성이 있습니다. DpiX는 수평 인치당 픽셀입니다. DpiY는 수직 인치당 픽셀입니다. 포인트 (72 포인트 / 인치)에서 픽셀로 변환하는 데 사용합니다.
예 : 14 개의 수평 포인트 = (14 * DpiX) / 72 픽셀
답변
확실히이 모든 질문은 다음과 같아야합니다.
“모니터의 수평 및 수직 PPI (Pixels Per Inch)는 어떻게 얻습니까?”
인치에는 72 개의 포인트가 있습니다 (정의에 따라 “포인트”는 인치의 1 / 72nd로 정의되고 “pica”는 피트의 1 / 72nd로 정의 됨). 이 두 가지 정보를 사용하면 px에서 pt로 쉽게 변환 할 수 있습니다.