首页 / C# / c# 刻度:毫米 英寸 像素转换
c# 刻度:毫米 英寸 像素转换
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# 刻度:毫米 英寸 像素转换,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2070字,纯文字阅读大概需要3分钟。
内容图文
![c# 刻度:毫米 英寸 像素转换](/upload/InfoBanner/zyjiaocheng/767/acfdd36235864ca3ad76db670d1d607a.jpg)
从目前所掌握的资料来看,c#程序中将毫米转换像素的方法无非两种:
第一种:
1: /// <summary>
2: /// 以毫米为单位的显示宽度
3: /// </summary>
4: const int HORZSIZE = 4;
5: /// <summary>
6: /// 以像素为单位的显示宽度 0~65535
7: /// </summary>
8: const int HORZRES = 8;
9: const int LOGPIXELSX = 88;
10: const int LOGPIXELSY = 90;
11: public static double MillimetersToPixelsWidth(IntPtr handle, double length) //length是毫米,1厘米=10毫米
12: {
13: System.Drawing.Graphics g = System.Drawing.Graphics.FromHwnd(handle);
14: IntPtr hdc = g.GetHdc();
15: int width = GetDeviceCaps(hdc, HORZSIZE); // HORZRES
16: int pixels = GetDeviceCaps(hdc, HORZRES); // BITSPIXEL
17: g.ReleaseHdc(hdc);
18: return (((double)pixels / (double)width) * (double)length);
19: }
20:
21: [System.Runtime.InteropServices.DllImport("gdi32.dll")]
22: private static extern int GetDeviceCaps(IntPtr hdc, int Index);
此种方法计算的值与实际刻度相比:10mm=实际刻度8mm
以此技术的程序:桌面刻度尺
技术文章引用:http://hi.baidu.com/kingcham/item/b3653ce0c69756216dabb8cd
在文章中所说的
GDI中有一个函数是GetDeviceCaps(),可以获取一些关于设备的一些属性,如HORZSIZE/HORZRES/LOGPIXELSX等。 以上三者的关系通常满足:HORZSIZE = 25.4 * HORZRES/LOGPIXELSX
但是在程序中却无法满足该条件。
第二种:
1: /// <summary>
2: /// 1英寸=25.4毫米
3: /// </summary>
4: const double millimererTopixel = 25.4;
5:
6: public static double MillimeterToPixel(IntPtr handle, double length) //length是毫米,1厘米=10毫米
7: {
8: System.Windows.Forms.Panel p = new System.Windows.Forms.Panel();
9: System.Drawing.Graphics g = System.Drawing.Graphics.FromHwnd(handle);
10:
11: //1英寸=25.4mm=96DPI,那么1mm=96/25.4DPI
12: return (((double)g.DpiX / millimererTopixel) * (double)length);
13: }
此种方法是根据网上的换算关系得来的。得到的值与实际刻度相比:180mm=实际刻度185mm
以此技术的程序:夏克屏幕刻度尺
以目前而言,还无法准确的进行转换,从而绘制标准刻度尺。如果各位有更好的方法,还望提示下,先谢谢了。
转载于:https://www.cnblogs.com/xiaotiannet/p/3520325.html
内容总结
以上是互联网集市为您收集整理的c# 刻度:毫米 英寸 像素转换全部内容,希望文章能够帮你解决c# 刻度:毫米 英寸 像素转换所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。