当前位置: 首页 > Web前端 > HTML

图片标注工具选择

时间:2023-04-02 23:26:11 HTML

在项目中,我们需要做一个图片标注工具,就是在底图上绘制特定的图形,连接线,或者标注长度。如下图所示,核心要求是:在浏览器PC端绘制的点、线、图形必须是矢量图形,可以移动、缩放、旋转。可以自定义需要的标注工具,比如绘制坐标轴,跟随鼠标移动即可载入底图,可以将绘制的矢量图+底图一起导出。基本技术没有什么可以选择的。它必须基于Canvas。关键是要选择一个有用的库。在“统一”(Three.js)的情况下,只有几个不太受欢迎的选项。根据github流行度粗略挑选,剩下两个:Fabric.jsvsTwo.js。而且界面风格比较现代,趋向于它,但是研究发现Two.js根本不支持加载图片。虽然它专注于矢量图形,但这有点过分了;而且明显是为动画设计的,所有的例子都是动画;它没有自己的事件系统,而是从Backbone借来的。这样一来,老Fabric.js看起来就很可爱了,尤其是它还直接支持鼠标拖动、缩放、旋转矢量图形对象。但是在引用Fabric的时候出了点小问题——我们的项目是基于iView,模块化开发的,一开始我们也想用npm安装,然后导入Fabric.js,谁知道导入后总是报错;后来发现只要用npm管理,Fabric就认为我运行在服务端的Node.js环境,所以需要依赖一些后端库来解析dom-crash,我是显然只在浏览器中使用它。Github上有人提到这个问题,建议提供一个前端版本的npm管理配置,但是开源方好像没有精力做这个。最后无奈,直接在最外层的html中加了一个