QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: cnhnln

X的默认dpi是哪里设置的?

[复制链接]
发表于 2006-7-9 22:24:53 | 显示全部楼层
http://process-of-elimination.net/wiki/Control_Font_DPI_in_X

dpi 越研究越复杂,上面的连接有各种环境 dpi 设置方法,我没全部测试。

我有一个很头疼的问题,可能问题本身就不成立:
比如最适合我本本的 dpi 是 90, 假如某款字体设计时 dpi 定为 90,那么此时是否能得到理论上最佳的显示效果?如果我把本本的  dpi 改为 100, 是否显示效果要相对差一些?
回复

使用道具 举报

 楼主| 发表于 2006-7-10 23:29:38 | 显示全部楼层
dpi 越研究越复杂

痛感阿同感,越研究越晕
回复

使用道具 举报

 楼主| 发表于 2006-8-24 14:28:42 | 显示全部楼层
[quote:375b544e33="quanliking"]http://scanline.ca/dpi/
你看看上面的这篇,能否解答你的疑问。[/quote]
第四项的"If DDC does not specify a size, 75 DPI is used by default."
这个75哪来的?源码里写的?
回复

使用道具 举报

 楼主| 发表于 2006-8-24 15:32:10 | 显示全部楼层
我的15#的CRT三星550s。显示器说明书上的"技术规格"部分的"有效显示"是
[code:1]
10.5 +/- 0.167 英尺(267 +/- 4 毫米)
7.9 +/- 0.16 英尺 (200 +/- 4毫米)
[/code:1]
按照说明书上的物理规格把267、200写到xorg.conf
[code:1]
DisplaySize  267        200
[/code:1]
"xinit" 启动后 "xdpyinfo|grep -iB1 dot" 的结果
[code:1]
  dimensions:    1024x768 pixels (268x201 millimeters)
  resolution:    97x97 dots per inch
[/code:1]
看来显示器设计制造的时候就是为windows的96dpi准备的

用Xorg -configure自动检测生成的xorg.conf.new文件的显示尺寸是
[code:1]
DisplaySize          280   210        # mm
[/code:1]
此时"xinit" 启动后 "xdpyinfo|grep -iB1 dot" 的结果
[code:1]
  dimensions:    1024x768 pixels (283x212 millimeters)
  resolution:    92x92 dots per inch
[/code:1]
可见xorg自动检测得到的结果并不准确。显示尺寸已经大于显示器的物理规格。
初步猜想,并不确定。可能是CRT显像管经过塑料外壳包边后,实际可视尺寸会减小。说明书给出的数值是最终用户可视的尺寸。xorg自动检测到的是包括显像管所包边的完整显像管尺寸大小
这在显示器说明说上也有间接的证明
[code:1]
550s:15英寸(38厘米)平面直角(可视面积35厘米)
[/code:1]


综上,如果要用DisplaySize来给xserver间接传递dpi大小,建议用说明书里的数值。不要用xorg自动检测到的,也最好别用自己手动测量的(特别是CRT显示器)
回复

使用道具 举报

 楼主| 发表于 2006-8-24 15:47:32 | 显示全部楼层
去掉xorg.conf的 "DisplaySize" 后用 "xinit" 启动 "xdpyinfo|grep -iB1 dot" 的结果
[code:1]
  dimensions:    1024x768 pixels (347x260 millimeters)
  resolution:    75x75 dots per inch
[/code:1]
果真是75,这个75哪来的呢?源码里写定的?
而且此时显示尺寸居然是"347x260",这大的太离谱了

X用72dpi启动后 "xdpyinfo|grep -iB1 dot" 的结果
[code:1]
  dimensions:    1024x768 pixels (361x271 millimeters)
  resolution:    72x72 dots per inch
[/code:1]
显示尺寸一样是大的离谱,可能是显示器的点距决定的。
在点距一定的情况下(显示器设计制造时物理数值,无法改变),单位尺寸显示的点数变少了(96-->72),要显示相同的点数(也是显示器的物理固定数值),显示尺寸就只能变大了
但是我的显示器的尺寸并没变大阿,而且也没有虚拟屏幕之类借以实现大尺寸的屏幕阿,这点困惑不已
回复

使用道具 举报

 楼主| 发表于 2006-8-24 15:58:07 | 显示全部楼层
而且,既然点距是固定的,为何分辨率又可调?
按照说明书上的0.28毫米点距,和267、200的显示尺寸。我的显示器应该是显示953、714个点阿

越来越晕
回复

使用道具 举报

 楼主| 发表于 2006-8-24 16:06:13 | 显示全部楼层
[quote:bae9799d35="quanliking"]
比如最适合我本本的 dpi 是 90, 假如某款字体设计时 dpi 定为 90,那么此时是否能得到理论上最佳的显示效果?如果我把本本的  dpi 改为 100, 是否显示效果要相对差一些?[/quote]
效果应该不会变,变的是字号。例如10号变成9.5号。我猜的阿,呵呵
回复

使用道具 举报

发表于 2006-9-9 12:43:52 | 显示全部楼层
我的理解是这样的,实际上显示器大小是固定的,点距等物理参数也是固定的,当选定分辨率时物理DPI(暂且这样称谓吧)也就确定了

以后的对DPI的指定只是影响软件的行为,比如显示器实际显示尺寸300x255 设定分辨率1024x768则DPI为1024/300*25.4=86,768/255*25.4=76;
你指定DPI为96就是说让软件认为96pixel就相当于1inch,但在显示器的物理显示上已经相当于96/86inch了,只有指定为86时,实际显示才是正确的。
不知道是不是这样
回复

使用道具 举报

 楼主| 发表于 2006-9-9 15:22:30 | 显示全部楼层
为何要乘25.4?

〉但在显示器的物理显示上已经相当于96/86inch了
那水平方向的不就成96/76inch了?那岂不是dpi在水平和垂直方向是不同的了?如果是相同的话,为何不是96/76,而是96/86?

而且对于实际像素数固定的LCD来说,情况是和CRT一样的吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-28 12:20 , Processed in 0.150925 second(s), 12 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表