1. 程式人生 > >畫素與毫米的轉換公式

畫素與毫米的轉換公式

畫素與毫米的轉換
轉換還需要知道另一個引數: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,將浮點數運算轉化為整數運算,效率更高
javascript可以得到的顯示器引數
screen.
availHeight 獲取系統螢幕的工作區域高度,排除 Microsoft® Windows® 工作列。
availWidth 獲取系統螢幕的工作區域寬度,排除 Windows 工作列。
bufferDepth 設定或獲取用於畫面外點陣圖緩衝顏色的每畫素位數。
colorDepth 獲取用於目標設定或緩衝區的顏色每畫素位數。
deviceXDPI 設定或獲取系統螢幕水平每英寸點數(DPI)的數值。
deviceYDPI 設定或獲取系統螢幕垂直每英寸點數(DPI)的數值。
fontSmoothingEnabled 獲取使用者是否在控制面板的顯示設定中啟用了圓整螢幕字型邊角的選項。
height 獲取螢幕的垂直解析度。
logicalXDPI 獲取系統螢幕水平每英寸點數(DPI)的常規數值。
logicalYDPI 獲取系統螢幕垂直每英寸點數(DPI)的常規數值。
updateInterval 設定或獲取螢幕的更新間隔。
width 獲取螢幕的垂直解析度。
常用的1024x768或800x600等標準的解析度計算出來的dpi是一個常數:96,因此計算出來的毫米與畫素的關係也約等於一個常數:
基本上 1毫米 約等於 3.78畫素