像素和毫米怎么换算

像素和毫米是不能直接转换的,只有在分辩率(dpi)下才能进行转换。因此,像素与毫米的转换,需要知道参数:DPI(每英寸多少点)。

象素数/ DPI = 英寸数;
英寸数 * 25.4 = 毫米数;

对于显示设备,不管是打印机还是屏幕,都有一种通用的方法:
先用GetDeviceCaps(设备句柄,LOGPIXELSX)
或者
GetDeviceCaps(设备句柄,LOGPIXELSY)获得设备每英寸的像素数分别记为:px  和 py。

一英寸等于25.4mm。

那么毫米换算成像素的公式为:
水平方向的换算:x * px /25.4
垂直方向的换算:y * py /25.4
像素换算为毫米:x * 25.4 / px

在程序中这么写
MyControl.Height = xlength{mm} * PixelsPerInch * 10 / 254;
分子和分母同乘以10,将浮点数运算转化为整数运算,效率更高。

常用的1024×768或800×600等标准的分辨率计算出来的dpi是一个常数:96,因此计算出来的毫米与像素的关系也约等于一个常数:基本上 1毫米 约等于 3.78像素。

假设屏幕分辨率为800*600,则:

在水平方向上,每英寸包含有800个像素,即1英寸=800px。在垂直方向上,每英寸包含有600个像素,即1英寸=600px。

可得:

(1)在水平方向上:

1mm=31.49606299px

1px=0.03175mm

(2)在垂直方向上:

1mm=23.62204724px

1px=0.042333333mm

参考文献:https://www.jb51.net/article/13238.htm

【不要轻言放弃,否则对不起自己!】