c# 刻度:毫米 英寸 像素转换
从目前所掌握的资料来看,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
以此技术的程序:夏克屏幕刻度尺
以目前而言,还无法准确的进行转换,从而绘制标准刻度尺。如果各位有更好的方法,还望提示下,先谢谢了。
c# 刻度:毫米 英寸 像素转换的更多相关文章
- C#中毫米与像素的换算方法
C#中以像素作为尺寸单位,像素是一种相对的尺寸概念,与毫米的转换与当前显示器的分辨率有关.在不同分辨率下转换的系数不同. 借助GDI可以完成毫米至像素的转换. public static double ...
- PixelUtils:像素转换工具
/** 像素转换工具 */ public class PixelUtils { /** * The context. */ private static Context mContext = Cust ...
- FFmpeg(四) 像素转换相关函数理解
一.基本流程 1.sws_getCachedContext();//得到像素转换的上下文 2.sws_scale()://进行转换 二.函数说明 1.SwsContext *vctx = NULL; ...
- iOS关于图片点到像素转换之杂谈
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 不管是以什么方法生成的图片,是从磁盘上读取的,还是从其他对象中 ...
- ASP.NET Core WebApi中简单像素转换跟踪实现
像素跟踪虽然是最早用于跟踪营销转换的方法,但它仍然被广泛使用,像Facebook这样的大公司仍然将其视为跟踪网页转换的方法之一. 由于它的简单性,通过像素方法的跟踪转换仍然被广泛使用.它不需要任何复杂 ...
- 毫米转像素dpi
public static double MillimeterToPixel_X(double length) //length是毫米,1厘米=10毫米 { System.Windows.Forms. ...
- 像素转换mm
public static double MillimetersToPixelsWidth(double length) //length是毫米,1厘米=10毫米 { System.Windows.F ...
- 像素转换问题-队列解决办法(或者dfs)
在一定大小的像素图像中,将同色区域的颜色值替换为其他颜色值,从而产生新的图像,输入数据,图像大小,指定的像素点坐标,要替换成的颜色. 一开始出队操作写错了折腾半天,当队列中只有一个元素是出队后要将队首 ...
- js厘米与英寸尺码转换
<style type="text/css"> #txt_cm1, #txt_inch1, #txt_inch2, #txt_cm2 { width: 63px; he ...
随机推荐
- iOS---》点击uitableview 的section展开或隐藏
#import <UIKit/UIKit.h> @interface TestCell : UITableViewCell @property (weak, nonatomic) IBOu ...
- iOS 10 的一些资料整理
文/判若两人丶(简书作者)原文链接:http://www.jianshu.com/p/0cc7aad638d9 1.iOS 10 隐私权限设置 iOS 10 开始对隐私权限更加严格,如果你不设置就会直 ...
- 《MFC游戏开发》笔记六 图像双缓冲技术:实现一个流畅的动画
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9334121 作者:七十一雾央 新浪微博:http:/ ...
- sharepoint 2013 "The module ... owssvr.dll could not be loaded due to a configuration problem"
打开sharepoint站点可以看到这个503的错误, 在event viewer中查看如下: The Module DLL 'C:\Program Files\Common Files\Micros ...
- 递归小Demo
public class demo5 { public static void main(String[] args) { //初始值为100 int n = 100; ...
- Table of Contents - JavaSE
Java Bean Lombok IO Commons-IO - IOUtils Regular Expression 正则表达式常用操作 Concurrency java.util.concurre ...
- 用Drawing画图如何不会消失
方法一:将事件放在form_Load中,在窗体中画图 1: protected void MainForm_Load(object sender,EventArgs e) 2: { 3: Init ...
- JS正则表达式简单总结
正则表达式定义 JavaScript中的正则表达式用RegExp 对象表示,可以使用RegExp ()构造函数来创建RegExp对象,不过RegExp 对象更多的是通过一种特殊的直接量愈发来创建. 例 ...
- 六、Android学习笔记_JNI_c调用java代码
1.编写native方法(java2c)和非native方法(c2java): package com.example.provider; public class CallbackJava { // ...
- Part 10 Stored procedures in sql server
Stored procedures in sql server Stored procedures with output parameters Stored procedure output par ...