SVG开源项目HuayouJS开发笔记

1.什么是HuayouJS

HuayouJS是一个基于SVG(Scalable Vector Graphics的2D图形JavaScript组件库,它提供了原生SVG未具有的平移(Pan)和缩放(Zoom)功能,同时支持按图层管理SVG 图形元素。

HuayouJS定义了Metadata、Defs、Style及Layer等一系列图形对象,在内部高效的实现了zoomAndPan特性,并配合SVG 原生对象模型和API,开发者可以快速构建任何SVG图形应用。

2.HuayouJS解决什么问题

SVG规范中,对zoomAndPan(SVG文档整体缩放和平移)特性做了如下描述:

A magnify operation has the effect of a supplemental scale and translate transformation placed at the outermost level on the SVG document fragment (i.e., outside the outermost svg element).

Panning represents a translation (i.e., a shift) transformation on an SVG document fragment in response to a user interface action.

并要求svg文档片段中最外层的svg元素具有属性“zoomAndPan”,用于支持SVG文档整体平移和缩放。(The outermost svg element in an SVG document fragment has attribute ‘zoomAndPan’, which takes the possible values of disable and magnify, with the default being magnify.)

但遗憾的是,SVG规范中也明确指出,应用zoomAndPan 属性是有风险的,因为它没有已知的实现,也不太可能实现。(The zoomAndPan attribute is at risk, it has no known implementations and is unlikely to be implemented. See Github issue #56.)。截至当前,zoomAndPan特性没有得到包括chrome在内的任何主流浏览器支持。

但zoomAndPan是任何图形应用中所必须具有的基本特性,正是在这样的背景下,SVG图形应用开发者在实现zoomAndPan特性时,就有了各种不同的选择,有些开发者自己动手实现,而有些借助第三方库来解决问题。

客观来讲,在SVG中自行实现单纯的zoomAndPan特性并不复杂,但由于平移和缩放会带来一系列相关需求,比如在平移缩放过程中提供回调机制来进一步控制平移缩放行为,或是当屏幕或浏览器大小发生变化时,提供resize事件来调整缩放比例控制图形内容来自适应窗口大小,以及由于平移缩放操作导致视口坐标系统(viewport coordinate system)和用户坐标系统(user coordinate system)的转换问题,等等,想系统性的处理这些需求并非易事,需要大量设计和代码工

### 回答1: 在 web 设计中,保存为 SVG 文件的开源项目有很多。以下是其中几个常用的项目: 1. Inkscape:Inkscape 是一个功能强大的开源向量图形编辑器,支持创建和编辑 SVG 文件。用户可以通过绘图工具、层、路径、文本等进行设计,并保存为 SVG 文件。Inkscape 还支持导入其他图像文件格式,如 PNG 或 JPEG,并将其转换为 SVG。 2. Gravit Designer:Gravit Designer 是一个跨平台的矢量图形编辑器,也支持保存为 SVG 文件。它提供了丰富的绘图工具、图层管理、路径编辑和文本编辑等功能。用户可以使用 Gravit Designer 创建精美的网页设计,并导出为 SVG 以用于 web 开发和设计。 3. Vectr:Vectr 是一个易于使用的免费矢量图形编辑器,特别适用于创建简单的 web 设计图。它提供了直观的界面和基本的绘图工具,允许用户创建矢量图形并将其保存为 SVG 文件。Vectr 还支持共享和协作,用户可以与其他人一起编辑并导出 SVG 文件。 4. Boxy SVG:Boxy SVG 是一个功能强大的在线 SVG 编辑器,支持创建、编辑和保存为 SVG 文件。它提供了一系列的绘图工具、路径编辑和图层管理等功能,用户可以通过 Boxy SVG 创建复杂的 web 设计并导出为 SVG。 这些开源项目提供了丰富的功能和工具,使得 web 设计师能够轻松创建和编辑 SVG 图形,并将其保存为开放的、可扩展的 SVG 文件格式,以便在网页中使用。通过这些项目,用户可以自由选择适合自己的工具和工作流程,实现高质量的 web 设计。 ### 回答2: 有很多开源项目可用于保存web设计图为SVG(可缩放矢量图形)格式。下面是其中一些常用的开源项目: 1. Inkscape:Inkscape是一款功能强大的开源矢量图形编辑软件,它支持将设计图保存为SVG格式。它提供了丰富的绘图工具和编辑选项,适用于各种设计需求。 2. Gravit Designer:Gravit Designer是一款基于Web的矢量图形设计工具,可以将设计图保存为SVG格式。它提供了直观的界面和丰富的绘图功能,支持创建高质量的矢量图形。 3. Vectr:Vectr是一款轻量级的矢量图形编辑软件,可以将设计图保存为SVG格式。它具有简洁的用户界面和易于使用的工具,适用于快速创建和编辑矢量图形。 4. GIMP:GIMP是一款功能强大的开源图像编辑软件,它也可以处理矢量图形,并将设计图保存为SVG格式。虽然主要用于图像编辑,但它提供了一些矢量绘制和编辑功能。 这些开源项目都可免费使用,并且具有不同程度的功能和易用性。根据个人的需求和偏好,可以选择适合自己的工具来保存web设计图为SVG格式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值