将VG图形转换为SVG图形的方法
项目中需要对Visual Graph创建的tpl文件,也就是VG文件进行转换到html通用标签文件svg格式,所以专门做了转换工具。在网上实在找不到类似的可用工具,也许涉及这方面的项目太少的缘故吧。为此我发明了一种新的将VG图形转换为SVG图形的方法,解决了以上技术问题。
首先对VG文件和SVG文件对比一下:
相同:
1,都有基于xml语法(xml语法格式在此就不再写了)。
2,基本图形定义名称通用,例如line、text、rect、circle等都是一样的名称。
3,都是基于坐标布局。
不同:
1,根元素不同一个是vg一个是svg。
2,相对点不同,vg是原点坐标像四面散开布局,svg以左上角为原点向右下角散开布局。
3,图形属性表示不同,属性不同就太多了,这也是转换器的核心。
实现转换器的步骤:
1,加载vg图形文件。
2,识别vg图形文件的作用域,计算出转换后的svg原点坐标。
3,开始对vg的图形元素进行转换,根据转换规则转换成svg图形元素。
4,创建svg文件,将转换后的元素添加到新的文件中,输出新文件。
步骤3详解:
获取图形以后对不同图形进行不同的处理,对图形的坐标根据原点坐标进行转换,样式进行转。
本发明通过建立生成SVG图形所需要的各种元件的规则,将各种规则进行有机融合形成了一套完善的技术。通过加载VG图形,去转换出与之对应的SVG图形。本发明的关键在于读取VG图形中的内容,并能够智能识别各个元件。然后通过程序的规则库,对规则库中的SVG元件进行比对。比对内容包括元件名称、编号、颜色、位置等,最后生成到新的SVG图中。转换VG图形,成功的采用了SVG模型文件的方式,能够有效的统一技术规格。原理在于转换每一张VG图形,都会将数据内容放入模型文件,最后统一生成新的SVG图形。
通过本方法,能够很好的解决设计人员只有VG图形而没有需要的SVG图形的问题,为设计人员带来诸多方便。