首頁| 新聞| 娛樂| 游戲| 科普| 文學| 編程| 系統| 數據庫| 建站| 學院| 產品| 網管| 維修| 辦公| 熱點
C#中以像素作為尺寸單位,像素是一種相對的尺寸概念,與毫米的轉換與當前顯示器的分辨率有關。在不同分辨率下轉換的系數不同。
借助GDI可以完成毫米至像素的轉換。
public static double MillimetersToPixelsWidth(double length) { System.Windows.Forms.Panel p = new System.Windows.Forms.Panel(); System.Drawing.Graphics g = System.Drawing.Graphics.FromHwnd(p.Handle); IntPtr hdc = g.GetHdc(); int width = GetDeviceCaps(hdc, 4); //HORZRES int pixels = GetDeviceCaps(hdc, 8);// BITSPIXEL g.ReleaseHdc(hdc); return (((double)pixels / (double)width) * (double)length); } [DllImport("gdi32.dll")] private static extern int GetDeviceCaps(IntPtr hdc, int Index);
像素與毫米的轉換
轉換還需要知道另一個參數: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,將浮點數運算轉化為整數運算,效率更高
修改BIOS啟動項 圖文教程
cpu使用率高的解決辦法
認識電腦固態硬盤的以往與現在
清夢里的翩翩倩影,碎念里的點點凝眸
回眸一笑百媚生,六宮粉黛無顏色
蕪湖有個“松鼠小鎮”
小滿:小得盈滿,一切剛剛好!
一串串晶瑩剔透的葡萄,像一顆顆寶石掛在藤
正宗老北京脆皮烤鴨
人逢知己千杯少,喝酒搞笑圖集
搞笑試卷,學生惡搞答題
新聞熱點
疑難解答
圖片精選
在C#里面運用微軟AGENT之TTS
C#繪圖:在屏幕上畫一條直線
基于UDP、TCP協議的C#網絡編程
運用C#控制遠程計算機服務的實現方
網友關注