图片标注工具选型

项目里需要做一个图片标注工具,就是在一张底图上绘制特定的图形,连线,或者标注长度。如下图所示


核心需求如下:

浏览器PC端使用

绘制的点、线、图形,应该是矢量图,可以移动、缩放和旋转

可以定制需要的标注工具,比如绘制坐标轴,需要跟随鼠标移动

可以加载底图

可以把绘制完成的矢量图+底图一起导出

基础技术没啥可选的,肯定是基于Canvas实现,关键是选一个好用的库,搜索了一下,并没有像三维引擎那样出现“大一统”的局面(Three.js),只有几款不太热门的选项,根据github热度粗选,剩下两个:

Fabric.js  vs  Two.js

一开始因为Two.js和Three.js命名接近,而且界面风格更现代而倾向于它,但调研后发现,Two.js竟然完全不支持加载image,虽说是专注于矢量图,这也有点过分了;而且它明显是为了做动画设计的,所有的example都是动画;它还没有自己的事件体系,借用了Backbone的。

这样看起来,老旧的Fabric.js就显得很可爱了,特别是它还直接支持鼠标拖拽、缩放、旋转矢量图对象。

不过引用Fabric的时候,出现了一点问题——我们的项目是基于iView的,模块化开发,一开始也想用npm安装,然后import的方式引用Fabric.js,谁知道引进来以后总是出错;后来发现只要用npm管理,Fabric就认为自己跑在服务器端的Node.js环境中,所以需要依赖一些后端解析dom的库——崩溃,我明明只是在浏览器中使用啊。Github上有人提过这个issue,建议提供前端版本的npm管理配置,但开源方好像没有精力搞这个事儿。

最后无奈,直接在最外层的html里加<script>标签引用,终于成功加载。标签引用,终于成功加载。标签引用,终于成功加载。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,076评论 3 119
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,111评论 25 709
  • 现在的我,并不快乐。 上班的时候,总想着快点下班,周一到周三的时候,总盼望着周五的到来。以前上班的时候只登录工作Q...
    Danbo阅读 1,630评论 0 1
  • 春华秋实这个词,既美又深。春华给人以缤纷感,秋实给人以丰厚感。经春到秋,含苞结果...
    冰夫阅读 1,589评论 0 1
  • 杜媛药学专业技术业绩工作报告 我很荣幸加入益丰大药房连锁股份有限公司,不知不觉工作已有三年了。本人毕...
    媛媛哒14阅读 1,472评论 0 0

友情链接更多精彩内容