分享
个性化字体APP设计与实现_易多.pdf
下载文档

ID:479467

大小:159.44KB

页数:3页

格式:PDF

时间:2023-04-03

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
个性化 字体 APP 设计 实现 易多
DOI:1019392/jcnki1671-7341202306025个性化字体 APP 设计与实现易 多刘纯慧舒 畅湖南警察学院湖南长沙410138摘要:中国汉字历经千年的积淀与洗礼,其形态丰富多样且各具特色。现今,电脑和手机的普及让越来越多的年轻人患上了“电脑手机失写症”,人们手写汉字的意识逐渐淡薄。为了让人们重拾对手写汉字的兴趣,通过分析现有字体存取技术,结合字库相关知识与现有的图形图像技术,设计出一款名为“字游”的个性化字体 APP。将具有个性化的字体保存在 APP 的字库中,形成个性化的字体,以此更换在手机上展示出来的默认字体,能够为用户带来全新的体验。关键词:APP;个性化字体;字库书法作为中国上千年的传承之物,是中国文化的代表作,汉字则是汉民族文化经历数千年积累、沉淀所形成的思想智慧的结晶。随着科技的革新和互联网的发展,电脑和手机已经完全融入了人们的日常生活。伴随着互联网技术的日益成熟和手机电脑的普及,现阶段的“敲字如飞”逐渐替代了传统汉字一笔一画的书写。对于汉字这一传统文化而言,长时间使用手机和电脑使得许多人只能大致记住其形态,提笔才发现无法正确地写出其具体的部首结构。设计出这样一款 APP 不但能满足个人对个性化字体的需求,也让人们重新认识手写字体的重要性,避免“提笔忘字”的尴尬。对于以往的书法类 APP 而言,“字游”APP能够通过拍照识图、手绘字体的方式获取到个人的字体,再将图像字体轮廓录入字库,将个人字体转换为图文的形式再嵌入输入法中,能够实现个人个性化字体在互联网上的流通。一、个性化字体的原理(一)字符编码的发展历程谈及字体库数字化的呈现,不得不追溯字符编码的发展历程,在此只简单介绍其中的一部分。初期由美国科学家开发了电子计算机,为了便于自身使用,ASCII 编码应运而生,所有英文符号、数字和标点符号都能够在电脑上正确表达。科研人员发现共有 128 个这样的字符,故规定用8 位二进制来表达每一个字符。随后,一些非英语母语的发达国家也引进了计算机,而其母语字数也在 128 位之内,正好填补了之前 ASCII 码 128256 位的空白,便各自将 ASCII 码进行扩展,将其后 128 位字符表示为各自的母语字体。例如,在法语中的“”,它的 ASCII 编码是 130(二进制 10000010),但在希伯来语编码中的同等位数又显示是 Gimel,在其他编码中又会是另一种字符。因此不管怎样,ASCII 扩展码中 0 127 表示的符号都是一样的,而128255 的这一段却大相径庭。当我国开始使用计算机时,由于汉字的数量远大于 2的 8 次方,我们开始自行摸索继而有了 GB2312 字符编码的诞生。其规定前 127 位字符与 ASCII 码相同,大于 127位的码数用于定义汉字,采用两个 8 位二进制定义一个字符。其规定以 8 位一组,将前一个字节称为高字节,后一个字节称为低字节,可组合表示 6763 个简体汉字,依照汉字的拼音、部首和笔画进行排序。一直到后来 ISO(国际标准化组织)推出了 Unicode(万国码),各国才有了一个统一且能涵盖各国字体的规范化字符编码。(二)字库文件的存储格式在机器中,可视化的字体都源于本机的字体库。就电脑中字体而言,windows 系统所采用的默认字体为“微软雅黑”,在 C:WindowsFonts 路径下我们会发现,windows 系统中还装有“仿宋常规”“楷体常规”等以ttf 为后缀的多种字体。也就是说,由个人创造的字体库也同样需要写入该路径中,电脑才能对其进行检索、解析及调用。再使用界面中自带的“查找字符”功能分别去查看这些字体的字符映射表,不难发现,相同位置的字体所对应的字体字符编码都是采用 ucs-2 编码(Unicode 编码中的一种),并且都为同一个字。我们可以从中得知其中的映射关系 字体的存储就好比是一张相片对应着一个相框,不管相片的大小颜色如何改变,电脑的理解都只停留在相框这一层。(三)字体形态的存储原理TTF(True Type Font)是由微软与 APPle 公司联合发布的字体文件格式。随着 Windows 的普及,已成为目前最普遍的一个字体文档显示方法。True Type 字体是 Windows 操作系统所采用的唯一文字标准。它能够简单便捷地将文字轮廓转换成曲线,可以直接根据曲线轮廓加以文字填充,构成各种不同的色彩图案和文字效果,所以它常常被用作一种标题文字或者花样字。而 ttf 文件实质上也正如一个集装箱,每种 True Type字体包含于单个 ttf 文件中。其文字目录中包含记载着所47电子信息科技风 2023 年 2 月有文字格式文件的版本号文件和几个表,各个表上又各自存储记载着所有不同形式的文字逻辑记录,包括最基本的图元中的数据、字距的调整和信息文字、与图元之间的映射等。字体设计是针对一个参考网格设计的,该网格被称为em-square,网格中的坐标系可以表达文字中的图元。所以,em-squrare 大小直接定义了文本中所有图元被缩放的方式。True Type 字体对网格调节的要求可体现在控制值表中。例如,对于需要设计的文字来说,字体长度、字体笔画的长度,都可以是被限制的数值。(四)字体内容的呈现方式在计算机中,为完成对汉字信息的存储、传递和检索等一系列操作,需要采用到一个名为汉字内码的机内代码。计算机通过键盘键入接收到字体信息后,会由汉字操作系统的“输入码转换模块”将其信息转换成机内代码。不管何种的汉字系统和录入方法,都要先经过电脑的转化成为机内代码,才能对其信息加以贮存和处理。在转化成为机内代码之后,计算机再利用汉字字模码用点阵的方法对汉字的字形进行塑形。这种点阵方法就如一个个黑白方块,用黑色对所需方块加以填充,从而得到字形,所以简而言之汉字字模码也就是汉字的输出形态。针对各种汉字的输出条件不同,其相应的点阵多少也会有所不同,如“一”“二”等简易型汉字可用 16*16 点阵,而随着汉字笔画及其复杂程度的提升,点阵的规模也会随之扩大。字体库中保存了所有字体的点阵代码。在显示器输出文字时,电脑才会去检查字库,输出字模点阵以得到正确的字形。二、个性化软件的设计(一)软件概述“字游”,顾名思义,是一场字体的畅游,是不同手写字体之间的一次碰撞。同时,与“自由”谐音,包含对其字体流通的自由自在,不受拘束的美好愿景。“字游”是一款致力于用户的个性需求,让手写字体能够在电子设备上展示的 APP。APP 能清晰全面地展示手写字体,让用户体验学习他人的字体。通过网络实现个人字体在互联网中的流通从而带动文化传播,增强民族自尊心、自信心。同样,文字是文化的根,行书的美观,楷书的实用,草书的张狂,都能表现出很强的主观精神,具有很强的综合性。(二)软件特色“字游”APP 采用两种字体录入方式。其一是用户用手指在手机屏幕上直接绘制字体,其二是通过拍照的方式,对纸张上的字体进行捕捉。自助式制作属于自己的字体,能够为用户带来与众不同的体验。“字游”APP 主要设计有三种模块,即登录模块、个性造字模块及我的字库模块。登录模块的主要功能是用户的注册,登录和退出登录;个性造字模块主要用于创建字库,同时完成对个人即将创建的字体进行描述,为个人字体取名等操作。其中有两种字库可供用户选择,分别是常用字库和国标字库,前者包含大部分简单字体,可满足常用字体的录入,后者的字库则较为完备。在我的字库模块中,用户能够看见个人创建的所有字库,并可对其进行删除、继续书写和改写等一系列操作。以下是部分操作界面展示:图 1 创建字库界面图 2 书写界面三、个性化字体的实现(一)实现的主要原理“字游”希望实现的功能,是将手写汉字通过拍摄得到的图形替换本机字体,实现“抠字”功能,就类似于将图片进行抠图处理。各类图片实质上是用不同色块像素拼接而成,我们需要抠下其中的有效色块。打个比方,将 0 255 对应成黑白色块的颜色深浅程度,“0”代表黑色,“255”代表白色,中间的数字则代表由 0 至 255 颜色逐步57科技风 2023 年 2 月电子信息递减的色块。将需要进行“抠字”处理的图片进行色差调节,此时的图片只有黑白两色,利用脚本将黑色像素的保留,可得到字体的轮廓。为实现“抠字”功能,还需要一定的环境要求,为保证字体质量,需要在适合的光亮和淡色的平滑纸张上进行书写拍摄,手动书写的汉字也要尽量匀称,否则字体可能出现断断续续的情况。此外,通过“抠字”得到字体还需进行字体比例、位置的调节。少了这项操作,展示在我们眼前的文字会东倒西歪,甚至不在一条直线上。在 ttf 文件中记录了每个字体的比例。故按照默认字体的字体比例进行调节可以很好地解决这一问题。手绘字体的原理在于用 Android 屏幕进行手写签字的过程中,其实际是将手机触摸屏视为画板,将用户指尖当作画笔,指尖可置于手机触摸屏上进行滑动,触摸屏上将会自动呈现用户指尖移动的轨迹,类似于用画笔在一个画板上绘画的效果。机器中字体替换的功能本质上是 ttf 文件的默认字体权限的更改。因此,将经过处理后得到的所有图片集合转换为 ttf 文件,再将其权限修改为默认字体即可。(二)实现的关键技术字体输入的实现应与输入法相关联。一个输入法的核心类为 InputMethodSe rvice,候选字的显示以及汉字的上屏等所有逻辑功能均使用该服务来完成。我们能够通过Keyboardview 方式或者 Keyboard 对象来完成单一的按键布局格式。KeyboardView 同时也是一种真空的 view,它的布局是不可预见的,但它的代码含有一个名为 Keyboard 的辅助类成员,它能够承担相应的按键布局,包含了中英文键盘、数字和符号按键等,把布局上的按钮与键盘系统内部的 KeyCode 对应出来,通常我们在建立 Keyboard 的时候可以直接添加 xml 文档。Android 手绘字体的实现,首先,要选取某个屏幕尺寸的 bitmap 为底图,并设定为全透明色。其次,将整个canvas 内置于 bitmap 上,把触控点击事件作为 paint 即可。具体操作步骤为:获取当前屏幕的长和宽,获取布局和button,并写出点击事件,设置画图相关的 bitmap、canvas、paint 等,再写点击事件。最后,加载一个 view,并再加上一个新的 button,点击取消标记即可。具体关键代码如下:drawView=new DrawView(this,windowHeight,window-Width);/通知 view 组件重绘drawViewinvalidate();rladdView(drawView);btnn=new Button(this);btnnsetText(new button);elativeLayoutLayoutParamsbtnpara=newelativeLayoutLayoutParams(elativeLayout LayoutParams WAP _ CON-TENT,elativeLayoutLayoutParamsWAP_CONTENT);btnpara addule(elativeLayout CENTE _ HOIZON-TAL);btnpara addule(elativeLayout CENTE _ VETI-CAL);rladdView(btnn,btnpara);btnnsetOnClickListener(new ViewOnClickListener()Overridepublic void onClick(View v)rlremoveView(drawView);rlremoveView(btnn);结语这时我们会想:“为什么不能只替换自己经常用到的几个字体呢?”事实上不能篡改 Microsoft 上的字体,这样可能会涉及版权问题。为了避免这一问题的发生,我们需要创造出属于自己的一套字库。GB2312 字符编码可以表示6763 个汉字,就算只采用现今的常用字库也有 3600 余字,如果只是逐一输入,还要保证对每

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开