无线电电子与电气工程百科全书 LCD 光栅字体编辑器的新功能。 无线电电子电气工程百科全书 [L] 中发布的新版本字体编辑器引起读者注意的一个特征是其中存在字符识别模块,这大大简化并加快了分析和加载以前使用其他方法创建的字体的过程。意味着进入编辑器。 此外,它们还为用户提供了更高级的创建和编辑字体的机制。 原则上,从头开始为 LCD 创建新字体(字符生成器)是一项简单的任务,但非常艰苦。 根据您的要求“自定义”在可用来源之一(最常见的是 Internet 上)中找到的字体要容易得多。 基于这些考虑,笔者认为,无线电爱好者最常使用的字体编辑器(以下简称编辑器)恰恰就是为了纠正“洋”字体。 然而,如果原始字体的参数未知,则将其加载到编辑器中的过程相当复杂。 消除这些困难的愿望是编辑器更新版本开发的动力。 我提请读者注意其两个新版本:基本版本(CG-Edit 2.50)及其修改版本之一(CG-Edit 2.52)。 与[L]中描述的版本相比,编辑器2.50版本统一了字体文件加载过程。 以前,加载“自己的”和“外部”(在其他编辑器中创建的)文件的过程是不同的。 加载“自己的”文件时没有指定其中包含的字体参数,因为该信息位于文件名中。 对于“外国”文件,这样的操作需要手动输入格式参数、扫描类型和图像类型(正片或负片)。 当然,如果字体创建者以某种方式将参数信息放入文件中,则将此类文件输入编辑器会更容易。 但不幸的是,实际上这种情况极为罕见。 通常,要获得此信息,需要分析字体文件的内容,这远非简单,或者通过反复试验来进行,反复加载不熟悉的字体并搜索其参数的所有可能组合,期望在编辑窗口中看到的不是一组混乱的点,而是有意义的字符轮廓。 然而,简单地列举众多选项实在是太乏味了。 在新版本的编辑器中,识别模块会自动确定下载文件中字体的必要参数,然后加载并显示。 该模块的工作原理如下。 它将文件中的字节一一展开为矩阵,其大小对应于 LCD 屏幕上的典型字符表示格式(从 6x8 到 24x24 像素)。 然后,该模块将这些矩阵与部署样本符号的样本矩阵进行比较。 与此同时,他考虑了所有可能的选择。 比较的结果是工作矩阵和示例矩阵中图像的相关系数(从0到1)。 显然,如果矩阵中字符的展开参数与分析字体的参数一致,则矩阵中字符的图像将尽可能接近其示例风格。 对所有可能的参数执行循环的结果是形成相关系数的三维数组。 分析该数组可以确定与所分析的字体最可靠对应的参数值。 除了确定编辑器工作所必需的三个字体参数(熟悉格式、扫描类型和图像类型)外,编辑器还在代码表中分配了四个区域:20H-2FH(基本数学符号和标点符号)、30H- 39H(十进制数字)、41H -7EH(拉丁字母)、C0H-FFH(西里尔字母)。 它为用户提供了每个区域中已识别字符的存在情况的估计。 但该模块并不分析该区域的所有符号。 这将显着增加他的工作持续时间和编辑器程序的数量。 在每个区域中,它仅处理前四个字符,并对其存在应用以下标准: - 四个字符中的任意两个字符的相关系数至少为 0,85;
如果在文件中至少找到上面列出的区域之一,则认为字体已被识别。 在工作过程中,该模块会识别并正确加载不完整的西里尔字母字体。 完整字体与不完整字体的不同之处在于,完整字体包含描述 WIN-224 代码表的 1251 个显示字符所需的字节数(不考虑 0-1FH 区域中的控制字符)。 例如,在 8x8 字体中,每个字符由 8 个字节描述,因此其图像的大小为 224x1792 = XNUMX 字节。 在这种字体中,字符按照与代码表相对应的顺序放置:第一个字符始终是空格,下一个字符是感叹号,依此类推。 在这种情况下,完全没有必要正确描述所有符号。 字体还可以包含空白区域。 包含代码表所有符号图像的完整字体确保了没有内置字符生成器的指示器的操作。 然而,使用完整字体并不总是合理的。 例如,某些 LCD 控制器(例如 T6963C)具有内置字符生成器,该字符生成器仅包含代码表的前半部分(字符代码区间 20H-7EN),不包含西里尔字符和除拉丁语之外的其他字母。 对于使用此类控制器构建的指标的全面工作,有必要将代码为 0С0Н-0FFН 的缺失字符图像加载到字符生成器 RAM(如果有)中。 当然,您可以从完整字体执行此类下载,但大约四分之三的体积将不会被使用,并且无用地占用设备内存中的空间,有时甚至相当多。 例如,具有 16x24 像素矩阵的完整字体的体积超过 10 KB,在微控制器的内存中保留额外的 6...7 KB 是一种难以承受的奢侈。 在这种情况下,使用不完整的字体,其中包含的不是整个代码表的字符图像,而是仅包含其某些部分的字符图像。 这种字体的体积比完整字体小,并且其中字符的位置可能与代码表中接受的位置不对应。 在实践中,最常遇到仅包含西里尔字母的不完整字体。 它们用于指标的“俄罗斯化”,其字符生成器没有内置的西里尔字母。 有只包含数字字符的不完整字体,国外网站上有许多包含各种字母字符的不完整字体。 从[L]可知,在工作过程中,编辑器在RAM中生成字体图像,并且始终是完整的图像,其中字符的排列对应于它们在WIN-1251代码表中的顺序。 由于代码 20H-7FH 的字符在字体中的位置始终相同,因此这部分内容无需任何转换即可加载到图像中。 与不完整的数字字体的情况完全相同。 然而,数字的显示要求字体中不仅存在代码0H-9H的数字30-39的字符,而且还需要存在一些附加字符(空格、逗号、句点等)。 因此,数字字体通常包含代码为20H-3FH的字符,并按照代码表进行定位。 编辑器从头开始将这两种不完整的字体加载到图像中。 对于仅包含西里尔字母的不完整字体,情况有所不同。 其中,第一个字符不是空格(20H),而是西里尔字母A(0C0H)。 这种情况是公认的。 不完整的西里尔字体将被加载到图像中,从为代码 0C0H 的字符保留的位置开始。 首先,这对应于将字符放置在代码表中的逻辑,并且使得在编辑期间更容易浏览字符,其次,如果有必要,它允许执行诸如从两个字符“粘合”完整字体之类的有用操作。不完整的,分别包含拉丁语和西里尔语。 在分析不完整的西里尔字母字体时,识别模块还会检查其图像的大小。 如果它大于允许的值(这意味着它不仅包含代码64CH-0FFH的0个字符,还包含一些其他信息),文件将作为完整字体加载,但其第一个字符不会是空格字符,而是字母 A。通过这样做,编辑器使用户有机会自己弄清楚字体的内容。 所有字体文件,无论其来源如何,都会通过识别模块。 但它忽略了使用第一版编辑器创建的文件名中包含的关键信息,这使得它可以被完全抛弃,简化了文件名的结构。 显然,识别算法的能力是有限的,自动下载尝试很可能会失败。 在这种情况下,编辑器将在手动指定字体参数后提供上传文件的功能。 也有可能是编辑器无法正确识别字体。 为了摆脱这种情况,用户有机会不同意程序的决定并手动输入字体参数。 在手动输入参数的所有情况下,无论文件中的字体(完整或不完整)是什么,字体都会从初始位置加载到图像中。 新版本的编辑器还添加了将当前字体中的字符从一种熟悉的字符复制到另一种熟悉的字符的功能。 引入了“铅笔”和“橡皮擦”模式,让您可以在熟悉的鼠标中绘制字符。 这使得创建或编辑字符变得更加容易,尤其是对于大格式字体。 增加了扫描熟悉度矩阵中字节的方式数量。 添加了将任意长度的字体图像的连续片段写入文件的功能,即创建具有不完整字体的文件。 将字体文件加载到编辑器中 用户在标准Windows对话框中选择加载的文件后,编辑器会自动启动识别其中包含的字体参数的过程。 如果无法确定字体设置,将显示一条消息,提示您手动设置。 其原因可能是文件中包含的字体格式对程序来说是未知的,或者文件中的字符样式与样本之间存在显着差异。 用户确认同意手动输入参数后,将打开一个输入窗口。 在此阶段,您可以拒绝下载所选文件。 如果编辑器识别出不带西里尔字母的完整或不完整字体,则屏幕上将显示一条包含已识别字体参数的消息。 应该记住,一组字符名称旁边的“否”一词并不意味着该组中根本没有字符。 一般来说,这只是编辑无法识别该组的前四个字符的证据。 此外,用户可以允许使用识别模块定义的参数来加载文件,或者手动输入字体参数,或者拒绝下载文件。 如果编辑器识别出不完整的西里尔字体,则可以在计算机内存中已有的字体图像上叠加加载它,或者加载当前图像的初步清理。 如前所述,编辑器总是从俄语字母 A(字符代码 0C0H)的位置开始将此类字体加载到图像中。 当前图像上的叠加操作允许您从两部分创建完整字体,换句话说,“俄罗斯化”没有西里尔字体的字体。 为此,您必须首先将要俄罗斯化的字体加载到编辑器中,然后以覆盖模式加载不完整的西里尔字母字体。 但是,请记住,为了正确合并,两种字体(位于当前图像中并下载)绝对有必要具有相同的参数,否则产品将无法工作。 为了防止用户犯这样的错误,编辑器总是存储先前加载的字体的参数,如果发现不完整的西里尔字体,则将其参数与其进行比较。 如果它们匹配,则会显示一条消息,并且通过单击“是”按钮,可以加载覆盖文件。 当您单击“否”屏幕按钮时,将执行下载并初步清理内存中的字体图像。 也可以拒绝加载(使用“取消”屏幕按钮)。 如果格式不匹配,则仅将字体加载到先前清理的图像中(“是”)或拒绝下载(“否”)。 加载或创建字体后的主编辑器窗口如图 1 所示。 XNUMX. 总的来说,它与[L]中的相同,只是有一些变化,这将在稍后讨论。
将一个字符从一个字符复制到另一个字符 该操作是在字符选择区域中执行的。 在源符号上双击鼠标左键。 他熟悉的背景将变成蓝色(图1中的符号B)。 然后单击目标符号一次。 操作完成。 源符号的蓝色背景将被删除,目标符号的背景将变为红色,并且符号将被编辑。 如果源符号选择错误,则要退出复制模式,只需再次单击该符号即可。 铅笔和橡皮擦模式 要打开铅笔模式,请按住 Shift 键。 在此模式下,鼠标光标移动到的熟悉元素的颜色会变为蓝色。 不需要单击鼠标按钮。 释放 Shift 键后,编辑器将返回正常编辑模式,其中每次鼠标单击熟悉的元素都会反转该元素的状态。 要启用橡皮擦模式,请按住 Ctrl 键。 鼠标光标会在熟悉的地方留下一条白色的痕迹。 松开 Ctrl 键即可退出该模式。 字节扫描类型 在新版本的编辑器中,您可以设置两个熟悉的垂直字节扫描选项和两个水平扫描字节选项。 它们如图所示。 2. 编辑器第一版中的垂直模式对应于“垂直1”模式,水平模式对应于“水平1”。
为了使用户在选择所需的字节扫描类型时更容易导航,字体参数输入窗口的类型已更改,该窗口在创建新字体或在加载过程中手动输入其参数时打开。 现在它包含所选扫描类型的图形提示 - 图 2 中的四个片段之一。 XNUMX. 在新打开的窗口中,仅可见“取消”按钮和熟悉格式选择字段。 其余元素仅在做出此选择后才会出现。 按下屏幕按钮“更改展开模式视图”会打开一个类似于上述窗口的窗口。 在打开的窗口中,将标记扫描的当前视图。 它可以被任何允许的类型代替([L]中考虑了允许的扫描类型)。 窗口中缺少“取消”屏幕按钮。 要执行此类操作,只需按屏幕按钮“OK”即可,无需更改扫描类型。 创建部分字体文件 在所有情况下,编辑器的第一个版本都会将完整的字体文件写入磁盘。 在新版本中,您可以将码表中任意连续的字符图像序列保存在一个文件中,即创建不完整的字体文件。 要创建这样的文件,需要在“输出文件”字段中选中“不完整的CG”项目。 该字段中将出现两个名称为“符号:从...”和“到...”的输入框。 将要写入的第一个和最后一个字符的代码(根据代码表)输入到这些窗口中。 默认情况下,指定整个代码表 - 完整字体。 可以手动输入所需的值,但编辑器允许您以更方便的方式执行此操作。 在字符选择区域中,单击间隔的第一个字符(其背景将变为红色),然后双击“字符与...”输入框。 所选字符的代码将出现在该窗口中。 然后单击间隔的最后一个字符,然后双击“by...”输入框。 它将显示最后一个字符的代码。 之后,您应该选择所需的选项来格式化输出文件中的信息,所需的字符图像类型(正或负),然后单击“保存字符生成器”屏幕按钮。 默认情况下,编辑器以与[L]中所述相同的方式构建保存文件的名称,唯一的区别是它在字节扫描类型的字符上添加数字1或2。如果保存的字体是如果不完整,则编辑器会为非西里尔字母字体添加 LAT 字符,或为仅西里尔字母字体添加 RUS 字符。 在所有情况下,该名称都具有 .fnt 扩展名。 例如,文件名 Font12x16v1nRUS.fnt 表示它包含 12x16 格式、垂直字节扫描 1、负像的不完整西里尔字母字体。 如前所述,相关编辑器的版本不会解析加载文件的名称,因此用户有权将程序建议的保存文件的名称(包括扩展名)替换为他选择的任何其他名称。 不过,仍然建议给文件赋予有意义的名称,以便您无需打开文件即可判断文件的内容。 其他变化 在分析了编辑器所使用的熟悉格式列表后,实际上未使用的 24x16 px 格式已从中删除。 主编辑器窗口的外观略有改变。 除此之外,编辑器 2.50 版本与 [L] 中描述的版本没有区别。 编辑器版本 2.52 的功能 在WIN-1251代码表中,代码为7FH-BFH的字符不属于拉丁或西里尔字母的主要字符,并且很少使用。 通常,在完整字体中,该区域是空的或几乎是空的。 如 [J1] 中所述,在此区域中,您可以放置在正在开发字体的特定设备中的指示器上显示所需的任意字符。 在编辑器的早期版本中,字符选择字段中该组的内容对应于WIN-1251代码表,并没有以任何方式反映其真实状态。 当然,如果能够在选择字段中显示字符的真实风格,包括在编辑它们的过程中,那就太好了。 然而,将符号从编辑区域传输到选择区域通常需要对其进行缩放,并且编辑器使用的缩放位图图形会导致严重的图像失真。 由于熟悉度矩阵中的原始图像分辨率不足,符号在缩放过程中会失真,并且当切换到不同的分辨率时,图像元素会以不可预测的方式合并或分裂。 因此,必须放弃缩放传输,因为传输的字符通常变得不可读。 然而,在 2.52 版本中,出现了关于 7FH-BFH 区域中存在字符的信号,这使您可以更好地导航。 当编辑器启动时,字符选择字段的这个区域是空的(图3)。 但在加载字体文件的过程中,编辑器会检查每个熟悉的字符是否存在。 如果图像的任何字节中至少有一位值为 1,则认为该字符存在。如果找到这样的熟悉度,则将显示代码为 95n(熟悉度中心的粗体点)的字符在选择区域的相应单元格中,如图所示4. 这证明这里存在某种符号。 您可以通过选择此单元格进行编辑来查看和更改其样式。 当在此区域中创建新符号时,符号选择区域中相应的单元格也会用粗体点标记。
如果位于所考虑的区域中的角色的熟悉度被清除(例如,由于按下“删除”屏幕按钮),则与其相对应的角色选择区域的单元格也被清除。 这不符合编辑器所采用的表明字符编辑事实的原则。 在字体的其他区域中,对字符的任何编辑(包括完全删除)都会通过在选择区域中以粗体放大字体突出显示该字符来表示。 因此,应该记住上述规则的例外情况。 2.52 版编辑器的其余部分与 2.50 版完全相似。 两个版本更新的编辑器包括可执行文件 CGE-250.exe 或 CGE-252.exe 以及 Model 文件夹,其中包含 0 个文件:t5.mod-t0.mod 和 v3.bmp-vXNUMX.bmp。 不得删除、重命名这些文件或将其移动到其他位置。 该编辑器不需要安装,可以放置在任何地方(包括可移动媒体)。 唯一的条件是模型文件夹必须与可执行文件位于同一文件夹中。 文章中描述的程序可以从ftp://ftp.radio.ru/pub/2016/10/250-252.zip下载。 文学
作者:A. Savchenko 查看其他文章 部分 业余无线电设计师. 读和写 有帮助 对这篇文章的评论. 科技、新电子最新动态: 世界最高天文台落成
04.05.2024 利用气流控制物体
04.05.2024 纯种狗生病的频率并不比纯种狗高
03.05.2024
其他有趣的新闻: ▪ 用于智能手机摄像头的 64 MP OmniVision 传感器 ▪ 活电池 ▪ 一种新的发电方式
免费技术图书馆的有趣材料: ▪ 文章 水文原因造成的自然紧急情况:洪水、泥石流、海啸。 安全生活的基础 ▪ 文章哪一棵树的叶子先是黄色或红色,然后变成绿色? 详细解答 ▪ 文章 用于低音炮通道的加法器和可调节低通滤波器。 无线电电子电气工程百科全书 本页所有语言 www.diagram.com.ua |