Mar*_*som 189
每英寸有72个点 ; 如果足以假设每英寸96像素,则公式相当简单:
points = pixels*72/96
有一种方法可以在Windows中获取每英寸显示器配置的像素数GetDeviceCaps.Microsoft有一个名为"开发DPI-Aware应用程序"的指南,请查找"创建DPI感知字体"部分.
无论显示器的实际分辨率如何,W3C都将像素测量px精确定义为1英寸的1/96,因此上述公式应该适用于所有网络工作.
Hej*_*azi 56
如果您的代码位于以下形式,请尝试此操作:
Graphics g = this.CreateGraphics();
points = pixels * 72 / g.DpiX;
g.Dispose();
Run Code Online (Sandbox Code Playgroud)
Joe*_*orn 25
假设96dpi是一个巨大的错误.即使假设是正确的,也可以选择缩放字体.因此,实际上可以显示10pts的字体集,就好像它是12.5pt(125%).
Ian*_*oyd 19
从给定的开始:
如果要根据像素(px)找到点(pt):
72 pt x pt
------ = ----- (1) for 150dpi system
150 px y px
Run Code Online (Sandbox Code Playgroud)
重新排列:
x = (y/150) * 72 (2) for 150dpi system
Run Code Online (Sandbox Code Playgroud)
所以:
points = (pixels / 150) * 72 (3) for 150dpi system
Run Code Online (Sandbox Code Playgroud)
小智 10
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 像素
| 归档时间: |
|
| 查看次数: |
199097 次 |
| 最近记录: |