字體的大小(pt)和像素(px)如何轉換?

px:相對長度單位。像素(Pixel)。
pt:絕對長度單位。點(Point)。
1in = 2.54cm = 25.4 mm = 72pt = 6pc

具體換算是: Points Pixels Ems Percent 6pt 8px 0.5em 50% 7pt 9px 0.55em 55% 7.5pt 10px 0.625em 62.5% 8pt 11px 0.7em 70% 9pt 12px 0.75em 75% 10pt 13px 0.8em 80% 10.5pt 14px 0.875em 87.5% 11pt 15px 0.95em 95% 12pt 16px 1em 100% 13pt 17px 1.05em 105% 13.5pt 18px 1.125em 112.5% 14pt 19px 1.2em 120% 14.5pt 20px 1.25em 125% 15pt 21px 1.3em 130% 16pt 22px 1.4em 140% 17pt 23px 1.45em 145% 18pt 24px 1.5em 150% 20pt 26px 1.6em 160% 22pt 29px 1.8em 180% 24pt 32px 2em 200% 26pt 35px 2.2em 220% 27pt 36px 2.25em 225% 28pt 37px 2.3em 230% 29pt 38px 2.35em 235% 30pt 40px 2.45em 245% 32pt 42px 2.55em 255% 34pt 45px 2.75em 275% 36pt 48px 3em 300% 
換算方式 ----    字體號 / 72 *96 = 目標px
像素與毫米的轉換 
轉換還須要知道另外一個參數: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 := 10{mm} * PixelsPerInch * 10 div 254; 
分子和分母同乘以10,將浮點數運算轉化爲整數運算,效率更高 

經常使用的1024x768或800x600等標準的分辨率計算出來的dpi是一個常數:96,所以計算出來的毫米與像素的關係也約等於一個常數: 
基本上 1毫米 約等於 3.78像素
相關文章
相關標籤/搜索