Web下DWG图纸字体一致性绘制方法及系统技术方案

技术编号:35421021 阅读:50 留言:0更新日期:2022-11-03 11:21
本发明专利技术涉及一种Web下DWG图纸字体一致性绘制方法及系统,属于DWG图纸显示技术领域。在Web后端,对于DWG图纸中的每一字符,从字体库中选取该字符的字体所对应的字体文件,并从字体文件中选取该字符对应的字符信息,根据字符信息生成该字符对应的SDF纹理图片,且该SDF纹理图片基于该字符的正确的字体生成。在Web前端显示DWG图纸时,基于字符对应的SDF纹理图片绘制字符,从而能够高效的渲染大批量字符并且保持显示字符与原始图纸中字符的字体一致,解决在浏览器中绘制DWG图纸时字体不一致的问题。题。题。

【技术实现步骤摘要】
Web下DWG图纸字体一致性绘制方法及系统


[0001]本专利技术涉及DWG图纸显示
,特别是涉及一种Web下DWG图纸字体一致性绘制方法及系统。

技术介绍

[0002]DWG图纸会包含大量的字符,字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号和数字等,而且一张DWG图纸中的字符会使用多种字体,既有操作系统自带的Truetype字体,也有用户自定义的shx字体,故在浏览器中基于webgl显示DWG图纸时,如何高效的渲染大批量字符并且保持显示字符与原始图纸中字符的字体一致是个技术难点。
[0003]目前所用的渲染方式包括以下几种:从字体文件中获取字符的矢量几何表示,采用几何的方法来绘制字符,但会产生大量的三角网格,降低渲染效率;采用字符位图贴图方式来绘制,但会产生放大时锯齿模糊的情况;采用HTML5canvas实时生成字符的SDF纹理图,能够有效解决大批量字符绘制的效率问题和字符缩放问题,但受限于浏览器所支持字体,对CAD软件中的自定义字体(如shx字体)还不支持,会存在显示字符的字体与原始图纸中字符的字体不一致的情况。
[0004]基于此,亟需一种高效的渲染大批量字符并且保持显示字符与原始图纸中字符的字体一致的技术。

技术实现思路

[0005]本专利技术的目的是提供一种Web下DWG图纸字体一致性绘制方法及系统,针对前端较难获取到DWG图纸使用的所有字体,而导致显示字符的字体与原始图纸中字符的字体不一致的问题,采用在后端生成DWG图纸中所使用字符的SDF纹理信息的方法,能够高效的渲染大批量字符并且保持显示字符与原始图纸中字符的字体一致,解决在浏览器中绘制DWG图纸时字体不一致的问题。
[0006]为实现上述目的,本专利技术提供了如下方案:
[0007]一种Web下DWG图纸字体一致性绘制方法,所述绘制方法包括:
[0008]在Web后端,提取DWG图纸中的所有字符;对于每一所述字符,从字体库中选取所述字符的字体所对应的字体文件,并从所述字体文件中选取所述字符对应的字符信息,根据所述字符信息生成所述字符对应的SDF纹理图片;所述字体库包括多种字体对应的字体文件;所述字体文件包括多个字符对应的字符信息;所述字符信息包括多个按序排列的坐标,按照顺序将所有所述坐标相连接即绘制得到所述字符;
[0009]在Web前端显示所述DWG图纸时,基于所述字符对应的SDF纹理图片绘制所述字符。
[0010]在一些实施例中,在所述提取DWG图纸中的所有字符之后,所述绘制方法还包括:以提取的每一所述字符的字体和字符串作为键值,构建第一Hash表。
[0011]在一些实施例中,所述从所述字体文件中选取所述字符对应的字符信息具体包
括:根据所述字符的字符串,在所述字体文件所包括的字符表中确定偏移量;根据所述偏移量,在所述字体文件所包括的数据表中确定所述字符对应的字符信息。
[0012]在一些实施例中,所述根据所述字符信息生成所述字符对应的SDF纹理图片具体包括:
[0013]创建一张空白的位图;
[0014]将所述字符信息绘制在所述位图上,得到字符位图;
[0015]利用欧式距离转换算法计算所述字符位图中每一像素点的SDF值,得到SDF信息;
[0016]根据所述SDF信息生成所述字符对应的SDF纹理图片。
[0017]在一些实施例中,所述基于所述字符对应的SDF纹理图片绘制所述字符具体包括:
[0018]确定一四边形,并将所述四边形放置于所述字符在所述DWG图纸中的位置;
[0019]将所述字符对应的SDF纹理图片的四个顶点坐标赋予所述四边形的四个顶点;
[0020]以所述字符对应的SDF纹理图片作为输入纹理,利用片元着色器在所述四边形上绘制所述字符。
[0021]在一些实施例中,所述四边形由两个三角面片组成。
[0022]在一些实施例中,在得到所述字符对应的SDF纹理图片之后,所述绘制方法还包括:将所有所述字符对应的SDF纹理图片合并为若干张总纹理图片进行存储,每一所述字符对应的SDF纹理图片属于一所述总纹理图片;所述总纹理图片的张数由所有所述字符对应的SDF纹理图片的尺寸总和与所述总纹理图片的尺寸的比值向上取整得到。
[0023]在一些实施例中,对于每一所述字符,计算所述字符对应的SDF纹理图片在其所属的所述总纹理图片中的纹理坐标,并以所述字符对应的字符串、所述纹理坐标和所述字符对应的SDF纹理图片所属的总纹理图片的索引号作为键值,构建第二Hash表。
[0024]在一些实施例中,在所述基于所述字符对应的SDF纹理图片绘制所述字符之前,所述绘制方法还包括:根据所述第二Hash表在所有所述总纹理图片中提取所述字符对应的SDF纹理图片。
[0025]一种Web下DWG图纸字体一致性绘制系统,所述绘制系统包括:
[0026]纹理图片生成模块,用于在Web后端,提取DWG图纸中的所有字符;对于每一所述字符,从字体库中选取所述字符的字体所对应的字体文件,并从所述字体文件中选取所述字符对应的字符信息,根据所述字符信息生成所述字符对应的SDF纹理图片;所述字体库包括多种字体对应的字体文件;所述字体文件包括多个字符对应的字符信息;所述字符信息包括多个按序排列的坐标,按照顺序将所有所述坐标相连接即绘制得到所述字符;
[0027]绘制模块,用于在Web前端显示所述DWG图纸时,基于所述字符对应的SDF纹理图片绘制所述字符。
[0028]根据本专利技术提供的具体实施例,本专利技术公开了以下技术效果:
[0029]本专利技术用于提供一种Web下DWG图纸字体一致性绘制方法及系统,在Web后端,提取DWG图纸中的所有字符,对于每一字符,从字体库中选取该字符的字体所对应的字体文件,并从字体文件中选取该字符对应的字符信息,根据字符信息生成该字符对应的SDF纹理图片,以得到每一字符的SDF纹理图片,且该SDF纹理图片基于该字符的正确的字体生成。在Web前端显示DWG图纸时,基于字符对应的SDF纹理图片绘制字符,从而能够高效的渲染大批量字符并且保持显示字符与原始图纸中字符的字体一致,解决在浏览器中绘制DWG图纸时
字体不一致的问题。
附图说明
[0030]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031]图1为本专利技术实施例1所提供的绘制方法的方法流程图;
[0032]图2为本专利技术实施例1所提供的绘制方法的原理框图;
[0033]图3为本专利技术实施例1所提供的四边形的示意图;
[0034]图4为本专利技术实施例1所提供的总纹理图片的示意图;
[0035]图5为本专利技术实施例2所提供的绘制系统的系统框图。
具体实施方本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Web下DWG图纸字体一致性绘制方法,其特征在于,所述绘制方法包括:在Web后端,提取DWG图纸中的所有字符;对于每一所述字符,从字体库中选取所述字符的字体所对应的字体文件,并从所述字体文件中选取所述字符对应的字符信息,根据所述字符信息生成所述字符对应的SDF纹理图片;所述字体库包括多种字体对应的字体文件;所述字体文件包括多个字符对应的字符信息;所述字符信息包括多个按序排列的坐标,按照顺序将所有所述坐标相连接即绘制得到所述字符;在Web前端显示所述DWG图纸时,基于所述字符对应的SDF纹理图片绘制所述字符。2.根据权利要求1所述的绘制方法,其特征在于,在所述提取DWG图纸中的所有字符之后,所述绘制方法还包括:以提取的每一所述字符的字体和字符串作为键值,构建第一Hash表。3.根据权利要求1所述的绘制方法,其特征在于,所述从所述字体文件中选取所述字符对应的字符信息具体包括:根据所述字符的字符串,在所述字体文件所包括的字符表中确定偏移量;根据所述偏移量,在所述字体文件所包括的数据表中确定所述字符对应的字符信息。4.根据权利要求1所述的绘制方法,其特征在于,所述根据所述字符信息生成所述字符对应的SDF纹理图片具体包括:创建一张空白的位图;将所述字符信息绘制在所述位图上,得到字符位图;利用欧式距离转换算法计算所述字符位图中每一像素点的SDF值,得到SDF信息;根据所述SDF信息生成所述字符对应的SDF纹理图片。5.根据权利要求1所述的绘制方法,其特征在于,所述基于所述字符对应的SDF纹理图片绘制所述字符具体包括:确定一四边形,并将所述四边形放置于所述字符在所述DWG图纸中的位置;将所述字符对应的SDF纹理图片的四个顶点坐标赋予所述四边形的四个顶点;以所述字符对应的SDF纹理图片作...

【专利技术属性】
技术研发人员:程力伟彭维陈志杨
申请(专利权)人:杭州新迪数字工程系统有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1