一,矢量字库

矢量字库是一种记录每个字符的矢量信息的字符库。它的基本原理是根据一定的数学模型,把每个字符的笔画分解成数学模型中定义好的各种直线和曲线,然后记下这些直线和曲线的参数。在显示的时候根据具体的尺寸大小,再根据记录下来的参数画出这些线条,就还原了原来的字符。

二,矢量字库种类

我们常见的矢量字库有Type1字库,Truetype字库和OpenType字库。

Type1全称PostScript Type1,使用三次贝塞尔曲线来描述字形,TrueType则使用二次贝塞尔曲线来描述字形而OpenType是二者的结合。

二次贝塞尔曲线 

三次贝塞尔曲线 

参考文献:贝塞尔曲线 - 云+社区 - 腾讯云 (tencent.com)

三,矢量字库结构

矢量字体不是用点阵信息描述汉字的笔划,而是将汉字的笔划边缘用直线段描述成封闭的曲线并将线段各端点的坐标经压缩存储,它是以图形信息建库的。由于每个汉字的笔划不一样,所以每个汉字在库中所占长度是不相同的。这样,矢量字库不能象点阵那样定位,只能采用索引的方法。因而每种矢量字库都是由两部分组成,一部分是汉字的索引信息,它包括每个汉字的矢量数据在库中的位置地址以及汉字字形数据的长度,存放在字库的前面部分,按汉字的区位码顺序存放;另一部分是汉字的字形数据,包括控制信息各点坐标信息,是字库的主体,放在字库的后面。如UCDOS的矢量字库HZKSLSTJ(宋体简体)、HZKSLFSJ(仿宋简体)、HZKSLKTJ(楷体简体)、HZKSLHTJ(黑体简体),其索引信息长度6个字节,前面四个字节是汉字矢量数据在库中的起始位置,后两个字节为汉字字形数据的长度。

要进行矢量汉字显示,首先根据其机内码按下面公式:

汉字的索引信息首址=((汉字机内码高位字节-0Xa1)*94+汉字机内码低位字节-0Xa1)*6

计算出其索引信息首址,然后从指定的矢量字库按索引地址连续读出6个字节的索引信息,再根据索引信息中字形数据在库中的位置及字形数据的长度,从库中读出字形数据在库中的位置及字形数据的长度,从库中读出相应的字形数据,最后解码还原得到其轮廓多变形的各点坐标,画出多边形并填充,即可得到矢量汉字

中心句:矢量字库由索引信息区与字形数据区两部分构成

1,索引信息

根据汉字的机内码计算得到其索引信息在矢量字库中的位置,计算公式如下:

索引位置=((区码-16)*94+位码-1)*6

索引信息指明了某字的矢量数据在矢量字库中的位置和尺寸(以字节为单位),其中位置是相对于字库开始处以字节为单位的位移量。

2,字形数据(矢量数据)

矢量数据区中的数据有绘制某汉字的所有矢量信息,这些信息又以笔伐为一个数据组,每组占有若干个字节。这些字节中的首字节指明了该笔的起点,后续一个或多个字节指明了相对前一点增量及增量的方向。

四,矢量字库优缺点

在使用点阵字库时,对于每个点阵字符,都需要对其位图的每个像素进行变换。而在使用矢量字库时,对于每个矢量字符,需要对其每个几何元素进行变换。

相对而言,点阵字库显示速度快,但在缩放的情况下容易出现锯齿;矢量字库显示效果平滑,但相对而言需要经过一系列的数学运算才能输出结果。

五,Windows下的字库

Windows使用的字库也为点阵字库和矢量字库两类。在FONTS目录下,如果字体扩展名为FON,表示该文件为点阵字库;如果字体扩展名为TTF,表示该文件为矢量字库

结语:一键三连!!! 一键三连!!!一键三连!!!一键三连!!!一键三连!!!一键三连!!!一键三连!!!一键三连!!!一键三连!!!一键三连!!!一键三连!!!

十年脑血栓: 

【每日AI】什么是矢量字库?相关推荐

  1. 『每日AI』马化腾丨中国互联网已从C2C进化为KFC!

    关注"Ai时速" 智慧赢未来!  Ai时速  因着Ai的美好:用速度和激情创赢新时代! 职业创业|圈子机会|进化共赢 编辑|小Ai     图文来源 |网络 每日Ai 写在前面 2 ...

  2. c语言矢量字体库,单片机用矢量字库的C语言调用

    单片机用矢量字库的C语言调用 本文关键词:字库,矢量,单片机,调用,语言 单片机用矢量字库的C语言调用 本文简介:单片机用矢量字库的C语言调用用TFT320X240分辨路的液晶屏的显示效果如下图:本文 ...

  3. 『每日AI』王劲离职景驰科技丨无人驾驶领域的领跑者还是叛逃者?

    关注"Ai时速" 智慧赢未来!  Ai时速  因着Ai的美好:用速度和激情创享Ai时代! 职业创业|PK分享|进化成长 编辑|小Ai     图文来源 |网络 每日Ai 写在前面 ...

  4. 花了一年时间开发出来的AutoCAD矢量字库编辑器

    AutoCAD的shx矢量字库在工程制图以及字型加工(切割,雕刻,喷涂等)得到广泛的 应用,AutoCAD的专有矢量字库(扩展名为.shx),其对应的文本文件为后缀shp的形文件. 通常AutoCAD ...

  5. Linux下矢量字库应用

    Linux下矢量字库应用 1.FreeType简介 FreeType 库是一个完全免费(开源)的.高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,可以非常方便我们开发字体显示相关的 ...

  6. 单片机 怎调用显示屏字库_单片机巧用Windows矢量字库

    1 引 言本文引用地址:http://www.eepw.com.cn/article/172177.htm 单片机控制的LED.LCD显示屏均涉及到各种字体的汉字显示.建立单片机汉字字库的传统方法有使 ...

  7. 『每日AI』致敬宇宙大师丨霍金和他的预言

    关注"Ai时速" 智慧赢未来! AI时速|创赢未来 AI时速 因着Ai的美好:用速度和激情创赢Ai时代! 职业创业|圈子机会|进化成长 编辑|小Ai     图文来源 |网络 每日 ...

  8. 通过矢量字库制作点阵字库

    1.字库导出步骤 涉及软件:FontEditor 1.3.3 FontEditor 为一款功能强大的字体编辑和字体格式转换工具,支持制作 32*32 的全字库.能将 TTF,OTF 矢量字库转换为 B ...

  9. 『每日AI』丨瑞·达利欧“痛苦+反思=进化!”

    关注"Ai时速" 智慧赢未来! AI时速|创享未来 AI时速 因着Ai的美好:用速度和激情创享Ai时代! 职业创业|PK分享|进化成长 编辑|小Ai     图文来源 |网络 每日 ...

最新文章

  1. AutoFac使用方法总结:Part I
  2. VUE全选和反选案例
  3. rsync的基本使用
  4. VULKAN学习资料
  5. CentOS 初体验二: 切换语言,连接互联网
  6. FreeMarker 用户自定义指令@(3.4)
  7. linux suse11 nfs,suse11 nfsserver服务安装
  8. C#错误异常日志记录到文件
  9. 功能测试-测试定义与原则
  10. APK的Mokey测试
  11. Android小项目之--应用解析 Content Provider-内容提供商(附源码)
  12. Effective minidump
  13. 数值计算实验1 Matlab基础实验
  14. win10连接共享打印机出现0x0000011b
  15. 运筹学与管理科学著名期刊解读
  16. PPT:PowerPoint to Flash SDK:SWF
  17. flutter TapBar自定义indicator、固定宽度、圆角、改变indicator和text的距离
  18. DDR的VTT有源端接和无源端接(slua886a笔记)
  19. Android Studio导入第三方sdk
  20. 串口通信协议--UART、RS-232、RS-485、RS-422

热门文章

  1. linux或者UC/OS
  2. Idea设置代码自动提示快捷键
  3. 超分算法小合集之SRCNN、DCSCN、SRDenseNet、SRGAN
  4. 什么行业程序员不用996?
  5. 关于使用正则表达式进行文本替换
  6. 500错误及服务器内部错误
  7. 系统架构设计知识梳理--分布式架构
  8. crsctl命令详解
  9. 【围观】CISP-PTE 考题示例
  10. php去除换行(回车换行)的方法