麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C# > 正文

C#中像素與毫米之間換算方法

2023-05-14 16:26:27
字體:
來源:轉載
供稿:網友

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,將浮點數運算轉化為整數運算,效率更高

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲午夜视频 | 宅男噜噜噜66一区二区 | 少妇的肉体2无删减版 | 日韩视频一区二区三区四区 | 成人三级电影网站 | 亚洲aⅴ免费在线观看 | 日韩精品网站在线观看 | 中国fx性欧美xxxx | av电影手机在线看 | 韩国精品一区二区三区四区五区 | 99精品在线观看 | 羞羞的视频免费在线观看 | 国产激情精品一区二区三区 | www.91成人| 国产精彩视频在线 | 日本免费不卡一区二区 | 男女生羞羞视频网站在线观看 | 国产呦在线观看视频 | 免费看黄色一级片 | 久久蜜桃香蕉精品一区二区三区 | 午夜精品久久久久久久99热浪潮 | 精品久久久久久综合日本 | 中文字幕免费在线看 | h视频在线免费看 | 欧美日韩在线中文字幕 | 日本在线视频免费观看 | 91成人在线免费 | 男女牲高爱潮免费视频男女 | 欧美aⅴ视频 | 国产一区二区精品在线观看 | 97视频一二区 | 在线一级片 | 日本娇小videos高潮 | 亚洲一区二区三区视频 | 超碰99在线观看 | av电影免费播放 | 国产精品久久久久久久久久大牛 | 亚洲第一成人av | 高清国产免费 | 欧美成人免费一级 | 久久久久北条麻妃免费看 |