关于windows program中gdi介绍的字体一些问题
时间:2008-05-12 13:48:19
来源:论坛整理 作者: 编辑:chinaitzhe
原文在此:
“在传统的排版中,字体的字母大小由「点」表示。1点大约1/72英寸,在计算机排版中1点正好为1/72英寸。
理论上,字体的点值是从字体中最高的字符顶部到例如j、p、q和y等字母下部的字符底部的距离,其中不包括重音符号。例如,在10点的字体中此距离是10/72英寸。根据TEXTMETRIC结构,字体的点值等于tmHeight字段减去tmInternalLeading字段,如图5-2所示(该图与上一章的图4-3一样)。
图5-2 小字体和TEXTMETRIC字段。
在真正的排版中,字体的点值与字体字母的实际大小并不正好相等。字体的设计者做出的实际字符比点值指示的要大一些或小一些。究竟,字体设计是一种艺术而不是科学。
TEXTMETRIC结构的tmHeight字段指出文字的连续行在屏幕或打印机上间隔的方式。这也可以用点来测量。例如,12点的行距指出文字连续行的基准线应该间隔12/72(或1/6)英寸。不应该为10点字体使用10点行距,因为文字的连续行会碰到一起。
10点字体读起来很舒适。小于10点的字体不益于长时间阅读。
Windows系统字体-不考虑是大字体还是小字体,也不考虑所选择的视频图素大小-固定假设为10点字体和12点行距。这听起来很希奇,假如字体都是10点,为什么还把它们称为大字体和小字体呢?
解答是:当您在「控制台」的「显示」程序上选择小字体或大字体时,实际上是选择了一个假定的视讯显示分辨率,单位是每英寸的像素数(点数) 。当选择小字体时,即要Windows假定视讯显示分辨率为每英寸96像素(点)。当选择大字体时,即要Windows假定视讯显示分辨率为每英寸120像素(点)。
再看看图5-2。那是小字体,它依据的显示分辨率为每英寸96像素(点)。我说过它是10点字体。10点即是10/72英寸,假如乘以96像素(点),每10点(每英寸)大概就为13图素。这即是tmHeight减去tmInternalLeading的值。行距是12点,或12/72英寸,它乘以96像素(点),每12点(每英寸)就为16图素。这即是tmHeight的值。
图5-3显示大字体。这是依据每英寸120像素(点)的分辨率。同样,它是10点字体,10/72乘以120像素(点),每10点(每英寸)等于16图素,即是tmHeight减tmInternalLeading的值。12点行距等于20图素,即是tmHeight的值。(像第四章一样,再次强调所显示的是实际的度量大小,因此您可以理解它工作的方式。不要在您的程序中对此写作程序。)”
图我没贴,没什么用。
照我的理解,点是不变的,总是1/72,那么改变dpi,字体假如仍然是10个点的话,字体大小应该不变才是,为什么会变呢?还有为什么改变分辨率字体会变小?按照我对windows program的理解,应该都不变。难道是我那里理解错误了?还请达人指点。
现在我没分了,但还请不吝指教!
网友回复: 另外,文中括号中部分是我得到的电子书中的原文,我感觉这部分可能有误(或许被人改过了),所以用自己的理解改了。另外图素是文中的翻译法,我理解为像素。
难道是我的理解根本就错了?郁闷,想不通。
网友回复:在實際中測試測試,你將會有所收穫的。
关键字:windows,program,gdi,介绍,字体,
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面