Chinaunix首页 | 论坛 | 博客
  • 博客访问: 70232
  • 博文数量: 25
  • 博客积分: 1250
  • 博客等级: 中尉
  • 技术积分: 210
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-24 10:42
文章分类

全部博文(25)

文章存档

2011年(2)

2010年(23)

我的朋友

分类: LINUX

2010-12-06 17:38:40

原理



起,不得不一下多形填充原理。本来是想将多形填充作为单独的一内容,可惜得太我累大家也累。

  
形填充最需要注的就是斜率,的斜率,从而得到一行上的切点。然后从左到右,将各切点接起来,逐行行。

   
形有两填充方式,AlternateWinding。矢量字体主要用的前一方式,而winding会将所有的切点都接起来,没有了中的分隔区域。

  
比如,在Alternate模式下,从最左的切点1,会接切点2,然后从切点3接到切点4,而23是不接的。这样就形成了一个空洞,也是矢量字的奥秘所在。Winding模式会将所有的切点都接起来,即从最左的一直画到最右

FillMode



——PolyPolygon



将多个多合成一个,从而形成复杂的多。同也依FillMode的填充模式。下面我来看一中文是如何写出来的。

由两条多合而成,根据FillModeAlternate,相重叠的部分不示。用笔在字的中央画一条横线就可以找到4个交点,而交点23是不接的,这样就形成了的洞。



Arial字体中“S”的曲线

Arial字体中存“S”,就是多个Bezier3成的。点41点,而4042是控制点,来控制通41的曲线力。在点的定上,有on curvenot on curve,通常将在曲线上的点定为锚点,而不在曲线上的点控制点。



是我年初的候,了研究矢量字体,将字母P用微的方式出后,再取字数据,使用叉画出字中所有的点。P是由两条Bezier线而成的,第二条起着切割的目的,已形成P洞。



看看字母“B”的填充。



  
字体是如何保证对齐的呢?原来在字内部,有一个基准线,就好像信的虚线,用来水平方向对齐的,同,也有个垂直方向的基准线个字都有上浮和下沉的高度,也是字的最上和最下的点所的位置。



   
矢量字在不同字号下,根据点尺寸,示的精程度也不一。我们这里将“8”放大了看,在小字号和大字号下的效果。



   
在不同的字号下,根据最简单放原理,将所有的点放到合适的位置,再确定曲线这时候,一条就占据不了整列像素,或者一条边压在了两列像素的中 这样就造成了灰色的线条。而并不是我想要的效果,PhotoshopUSM滤镜,将虚得以逐清晰,以达到所要的矢量字。



   
苹果过调整整体点的位置,将所有的点适当便宜半个像素以内的位置,可以实现较为清晰的字体。如果在关闭了消除锯齿方式,有些边线由于占据不了半个像素,而不能够显示,就形成了所的缺或者缺笔划。



有些,比如Adobe Acrobat,通种较为复杂的方式,以实现矢量字的清晰。将某些关联的点作一个segment,并且局部偏移到近的整数位,而其他部分不这种方法目前较为流行,可以实现比苹果和ps要清晰的矢量效果。



通常看到的齿条文字这么清晰呢

  
TTF了保小字号下的清晰,可是用尽了方法。首先,在大的字,内置了数个字号的点字,接着才是矢量字。比如宋体,内置了12141618等几个点,在些之外才使用矢量字来渲染。也是一个TTF文件要几兆甚至几十兆的容量,不内嵌的点字越多,在不同字号下实现的效果自然越好。小看了些点字,一个都是平面设计师在工具上画的,并非由件生成。唉,可怜的设计师啊~~~~~~

  
,有个特例。比如Arial字体,内部全是矢量字,但各尺寸下都是这么清晰。呢?

  
原来,微在字中加入了解程序interpreter,一种专门用于字渲染的脚命令。在不同的字号下,都有相句,将矢量字得以最清晰化。是一种复杂的技,微得不能广泛使用,所以只有在部分的英文字中才有,而且脚本对应每个字都有一段代,容量非常大,用在字上几乎是不可能,除非是整个文字不多于100个才能使用。

  interpreter
就是这么神奇,他也是目前最好的技,能将矢量字渲染的和点字一的清晰。他将某些边线的距离拉,而将另一部分收之是按照人的想法来做的,也是好的程序。



  
我用一新的方式,保了任何字号下的清晰。目前在做实验,希望将来能做成PS的插件,或者做成个工具,出成PNG格式。这样设计师就能够显示最清晰的矢量字体了,免得用PS出的看不清。





矢量字体的极技


1998年的候,微声称明了一新的技,能在LCD上将矢量字体的清晰度提高到300%。而后,出了名Microsoft Reader件,我几个版本。Adobe也不甘示弱,随即在Acrobat 4CoolType行了支持,而LinuxFreeType始支持次像素平滑。据我多年的研究察,Acrobat做的最好,最灵活,而微 的缺少适当的调节工具,Linux的次像素平滑直就是垃圾,照虎画猫。

ClearType
使用彩色来描比度越是的文字,比如白底黑字或者黑底白字,都是最清晰的。其,理ClearType示精度提到到300%,但实际上只能达到200%左右。



一般来,液晶示器的点分布都非常均匀,个点都是由红绿蓝3色排列而成。我通常要示一个白色,需要将红绿蓝都点亮,而黑色是都不示。 ClearType将点的概念再次展,把近的两个点3色混淆,借前一个点的色而忽略后一点的某种颜色。这样,就可以把传统的一个点的最小展到 13个点的位。



在使用ClearType后,原来的字体渲染将更加清晰,当然,只限于LCD示器,CRT会更加模糊。ClearType有一个关键的技,就是 Linux的次像素平滑没有学去的地方,一定要考红绿蓝色亮度平衡。一般来绿色的亮度最高,而色的最低,所以我要在绿色的候加点 色和色来低亮度,而色的候要加入绿色和色来增加亮度。这种做法也可以使界的彩不是那,看起来更像是黑色的字。不这种做法使得 原本可以提高示精程度到300%的技,降低了多,不过还是要高于200%。

下面我最意的矢量字效果,试验程序截,以后做成PS的插件,供大家免使用。

注:LCD示器看,否效果只会更差

阅读(3731) | 评论(1) | 转发(0) |
0

上一篇:Verilog HDL 教程

下一篇:TURE Type 字库

给主人留下些什么吧!~~

chinaunix网友2010-12-07 15:47:25

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com