像素和毫米怎么换算
像素和毫米是不能直接转换的,只有在分辩率(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
【不要轻言放弃,否则对不起自己!】