Foxtable(狐表)用户栏目专家坐堂 → 操作系统什么地方看的到显示器的点距(或显示器实际大小)?


  共有11948人关注过本帖树形打印复制链接

主题:操作系统什么地方看的到显示器的点距(或显示器实际大小)?

帅哥哟,离线,有人找我吗?
Fotable
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
操作系统什么地方看的到显示器的点距(或显示器实际大小)?  发帖心情 Post By:2012/10/30 23:29:00 [显示全部帖子]

为了获得打印 所见即所得的真正等同大小效果,必须知道显示器的点距

操作系统什么地方看的到显示器的点距吗?当然如果代码获取到更好

[此贴子已经被作者于2012-10-31 10:33:05编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Fotable
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
  发帖心情 Post By:2012/10/31 9:17:00 [显示全部帖子]

用了个软件可以看到像素的单位长度,但却不知道这是什么长度单位

 


图片点击可在新窗口打开查看此主题相关图片如下:2012-10-31_091623.jpg
图片点击可在新窗口打开查看

 

这里重要的参数是像素的宽高 对角线 是我们想得到数据。

[此贴子已经被作者于2012-10-31 10:31:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Fotable
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
  发帖心情 Post By:2012/10/31 9:21:00 [显示全部帖子]

方法应该肯定是有的 只是我们找到

 回到顶部
帅哥哟,离线,有人找我吗?
Fotable
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
  发帖心情 Post By:2012/10/31 10:29:00 [显示全部帖子]

以下是引用hanxuntx在2012-10-31 10:13:00的发言:

本页地址:http://www.foxtable.com/help/topics/0348.htm

看这里

这个方法是不行的

这个方法得到是你给显示器设置的分辨率 比如10247*768 你也可以改成800*600 而你的显示器的点距 和实际大小是一个永远固定的值。


 回到顶部
帅哥哟,离线,有人找我吗?
Fotable
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
  发帖心情 Post By:2012/10/31 10:30:00 [显示全部帖子]

以下是引用程兴刚在2012-10-31 10:20:00的发言:
最简单也最原始的办法,截图,保存为.jpg格式,鼠标指向该文件,弹出的属性提示中有限速大小(宽*高)!

这个方法和6楼的方法是一个问题,一样的。你修改分辨率 截图保存一下看看。也会不一样。


 回到顶部
帅哥哟,离线,有人找我吗?
Fotable
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
  发帖心情 Post By:2012/10/31 10:31:00 [显示全部帖子]

以下是引用dolphinpku在2012-10-31 9:32:00的发言:
通过可视面积和最佳分辨率这两个参数可以算出。

那么 可视面积 这个参数 如何得到。


 回到顶部
帅哥哟,离线,有人找我吗?
Fotable
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
  发帖心情 Post By:2012/10/31 11:20:00 [显示全部帖子]

找了点相关资料给大家分享

最近要做一个所见即所得的图形编辑器,遇到了一个问题:如果以像素为单位在屏幕上画了一条直线后,那么如何知道它在屏幕上的物理长度?例如,假设我们在vc6中用向导新建一个简单的单文档程序PixerToInch,在它的ondraw函数中有如下代码:

[cpp:nogutter] view plaincopyprint?
  1. void CPixerToInchView::OnDraw(CDC* pDC)  
  2. {  
  3.     CPixerToInchDoc* pDoc = GetDocument();  
  4.     ASSERT_VALID(pDoc);  
  5.   
  6.     // TODO: add draw code for native data here   
  7.         //画一条96像素长的横线   
  8.     pDC->MoveTo(100,100);  
  9.     pDC->LineTo(196,100);  
  10.           
  11.         //画一条96像素长的竖线线   
  12.     pDC->MoveTo(100,100);  
  13.     pDC->LineTo(100,196);  
  14. }  

那么在我的aoc915sw显示器的屏幕上,实际测量的结果为水平线实际长度为接近31毫米,竖线的长度为大约为接近33毫米,为什么会出现这个结果呢?我查了很多资料,发现许多资料讲都是用dpi计算,但结果与我的实际不符,后经与网友七叶讨论,终于找到了正确的计算方式,现整理如下,以供后来者参考。

为了计算屏幕上的显示长度,需要知道如下几个参数

1、显示器的最大分辨率。显示器的最大分辨率可以去查该型号显示器的技术手册,例如对我的aocsw915显示器,其最大分辨率为1440*900。注意:要把显示器的最大分辨率和显卡的最大分辨率区别开来,在桌面上右键点"属性"->设置里看到的最大分辨率有可能是显卡的最大分辨率,比如我机器上的显卡型号为Intel 82945G Express Chipset ,它的最大分辨率是2048*1536。

      如果想直接查看显示器的最大分辨率,方法如下,在"属性"->"设置"里点"高级"->"监视器",选中"隐藏该显示器无法显示的模式",点确定后回到前面的对话框,此时看到的最大分辨率就是显示器的最大分辨率了。

2、windows系统的实际分辨率,即桌面上右键点"属性"->设置里的屏幕分辨率的值,我的是1280*768

3、显示器的点距,这个也需要查显示器的技术参数,aocsw915的点距为0.285mm

有了上面几个个参数之后,我们就可以计算出某个方向上的直线的实际长度了

公式为

屏幕长度(单位为毫米)=像素长度*最大分辩率*点距/当前分辨率 

例如对我的代码,屏幕上横线的长度为

96*0.285*1440/1280 = 30.78mm

竖线的屏幕长度为

96*0.285*900/768= 32.0625mm

和我的实际测量结果吻合。

小结:将像素长度乘当前的点距即可求出屏幕的实际长度,但是显示器标出的点距是在最大分辩率下的点距(此时也称显示器处于点对点模式)此时点距最小,当分辩率不是最大时,相当于把点距拉长了,此时的点距要考虑一个换算系数,即最大分辨率/当前分辨率,因此最后的公式为

像素数量*(最小点距*最大分辨率/实际分辩率)

[此贴子已经被作者于2012-10-31 11:20:04编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Fotable
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
  发帖心情 Post By:2012/11/1 13:43:00 [显示全部帖子]

顶顶


 回到顶部
帅哥哟,离线,有人找我吗?
Fotable
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
  发帖心情 Post By:2012/11/1 22:19:00 [显示全部帖子]

以下是引用freedust在2012-11-1 22:13:00的发言:
缇(Twips) (缇:计量单位,等于“磅”的 1/20,英寸的 1/1,440。一厘米有 567 缇。
像素(Pixels):监视器或打印机分辨率的最小单位 

右键单击桌面,选择属性,选择“设置”选卡,单击高级按钮。
里面出现DPI设置。一般为“正常尺寸(96 DPI)”。
DPI的意思就是 DPI (Dots per Inch)。因此我们可以得到如下换算公式
1 Pixel = 1440 TPI / 96 DPI = 15 Twips
1 Twip = 96 DPI / 1440 TPI = 0.0666667 Pixels


这里顺便说一下 ACCESS 中的其他几个单位的转换关系 


磅:指打印的字符的高度的度量单位。1 磅等于 1/72 英寸,或大约等于 1 厘米的 1/28。
英寸:2.54 厘米
 
一般情况下:1厘米=8505像素。不知道这个答案你需要不需要。我很久之前也遇到这个问题。但解决方法和你的不一样。
[此贴子已经被作者于2012-11-1 22:15:54编辑过]
你用的什么方法

 回到顶部