文字是怎么显示的:字体的秘密

简介:
 
呵呵,天天看着显示屏上的文字,试曾想过文字是怎么显示的?
 
我们都知道,操作系统为了能显示各种形状、大小的字体,自带了很多字体。因为有了这些字体,我们才得以看到文字。
 
为了弄清字体是如何显示出来的,首先应该弄明白字体是什么,字体是描述计算机文字的一种数据,里面记录了文字的形状,甚至大小等属性。
 
字体分两种:点阵字体和矢量字体。
点阵字体是用很多点来记录一个文字填充。比如用8*8个点描述一个子,填充的部分用0表示,不填充的部分用1表示,这样一个数字矩阵就描述了一个字。这些点阵字体是设计师们手工一个一个做出来的,太辛苦了!!!
矢量字体与点阵字体有很大不同,矢量字体用字体线条的形状来记录文字的形状,比如字母“A”,至少需要三条线来记录,字体的数据描述三条线的斜率,相对位置尺寸等等,具体怎么描述,我也不知道。矢量字体则是设计师与程序员共同努力来做出来的。
 
别小看了这些字体,那是人肉堆出来的,工作量是非常非常巨大的。
 
将所有的字体描述数据放到一起,形成对应每个文字编码,这样,就形成了中文
 
一旦计算机中有了这些字体,当计算机要显示相关文字的时候,会根据文字的编码,字符集,找到相应字符集编码的字体,将文字以图形的方式画在显示器上。
 
文字在显示器中显示在何位置取决于打开软件窗口的位置,窗口会依据在显示器上相对位置,以及文字相对窗口的位置等信息将文字正确画在合适的位置上。
 
如果你还要问问如何画出来的,那你可以翻看大学的计算机图形学课本了:)。
 
到此,基本上从底层了解了字体和显示的原理,但是还是没回答清楚一个记事本中的文字是如何出来的,为此,还需要知道文字与编码、以及字符集的概念与原理。请看下回分解。


本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/235985,如需转载请自行联系原作者
相关文章
|
计算机视觉 Python
python基于opencv工具掌纹主线提取
我们将在这篇文章中使用Python和OpenCV库来找出我们手掌中的主线。
|
Cloud Native 持续交付 云计算
云原生架构:重塑企业IT的未来####
本文深入探讨了云原生架构的兴起背景、核心理念、技术优势以及在现代企业IT系统中的应用实践。云原生架构以其高度的灵活性、可扩展性和敏捷性,正逐步成为企业数字化转型的关键驱动力。通过容器化、微服务、持续集成/持续部署(CI/CD)等关键技术,云原生架构能够加速软件开发周期,提升系统稳定性和运维效率,为企业带来前所未有的商业价值。 ####
239 0
|
编译器 Linux C语言
C/C++ 常见函数调用约定(__stdcall,__cdecl,__fastcall等):介绍常见函数调用约定的基本概念、用途和作用
C/C++ 常见函数调用约定(__stdcall,__cdecl,__fastcall等):介绍常见函数调用约定的基本概念、用途和作用
1171 0
|
机器学习/深度学习 人工智能 自然语言处理
Transformer图解以及相关的概念解析
前言 transformer是目前NLP甚至是整个深度学习领域不能不提到的框架,同时大部分LLM也是使用其进行训练生成模型,所以transformer几乎是目前每一个机器人开发者或者人工智能开发者不能越过的一个框架。接下来本文将从顶层往下去一步步掀开transformer的面纱。 transformer概述 Transformer模型来自论文Attention Is All You Need。 在论文中最初是为了提高机器翻译的效率,它使用了Self-Attention机制和Position Encoding去替代RNN。后来大家发现Self-Attention的效果很好,并且在其它的地
372 2
|
物联网 机器人 异构计算
Python 物联网入门指南(一)(1)
Python 物联网入门指南(一)
368 2
|
机器学习/深度学习 自然语言处理 并行计算
一文搞懂Transformer架构的三种注意力机制
一文搞懂Transformer架构的三种注意力机制
1662 1
|
编解码 算法 数据可视化
【视频】时间序列分类方法:动态时间规整算法DTW和R语言实现
【视频】时间序列分类方法:动态时间规整算法DTW和R语言实现
|
机器学习/深度学习 人工智能 自然语言处理
合合信息Embedding模型获得MTEB中文榜单第一
合合信息近日发布文本向量化模型acge_text_embedding,在MTEB中文榜单(C-MTEB)中荣获第一,该模型在处理文本分类、语义相似度计算和情感分析等方面表现出色。MTEB是一个评估文本嵌入模型的综合基准,包含多种语言和任务,而C-MTEB专注于中文文本。acge模型具有较小的模型大小和较高的分类任务性能,支持最大1024个tokens,适用于各种应用场景,如电商、医疗和教育领域,能提升信息处理效率和推荐精准度。此外,用户可以通过在线平台体验acge模型的效果。
|
存储 Java 关系型数据库
【精炼易懂】字符集、编码、乱码问题、ASCII、GBK、Unicode、UTF-8详解+实例说明
【精炼易懂】字符集、编码、乱码问题、ASCII、GBK、Unicode、UTF-8详解+实例说明
7182 4
|
传感器 缓存 编解码
海思3559 sample解析:vio
拿到开发板,编完了平台sample,自然按捺不住要去简单学习测试了。打开最直观相对也比较简单的vio例程做个到手分析和流程梳理吧
2836 0
海思3559 sample解析:vio