圖片標注工具選型

項目里需要做一個圖片標注工具,就是在一張底圖上繪制特定的圖形,連線,或者標注長度。如下圖所示


核心需求如下:

瀏覽器PC端使用

繪制的點、線、圖形,應該是矢量圖,可以移動、縮放和旋轉(zhuǎn)

可以定制需要的標注工具,比如繪制坐標軸,需要跟隨鼠標移動

可以加載底圖

可以把繪制完成的矢量圖+底圖一起導出

基礎技術沒啥可選的,肯定是基于Canvas實現(xiàn),關鍵是選一個好用的庫,搜索了一下,并沒有像三維引擎那樣出現(xiàn)“大一統(tǒng)”的局面(Three.js),只有幾款不太熱門的選項,根據(jù)github熱度粗選,剩下兩個:

Fabric.js? vs??Two.js

一開始因為Two.js和Three.js命名接近,而且界面風格更現(xiàn)代而傾向于它,但調(diào)研后發(fā)現(xiàn),Two.js竟然完全不支持加載image,雖說是專注于矢量圖,這也有點過分了;而且它明顯是為了做動畫設計的,所有的example都是動畫;它還沒有自己的事件體系,借用了Backbone的。

這樣看起來,老舊的Fabric.js就顯得很可愛了,特別是它還直接支持鼠標拖拽、縮放、旋轉(zhuǎn)矢量圖對象。

不過引用Fabric的時候,出現(xiàn)了一點問題——我們的項目是基于iView的,模塊化開發(fā),一開始也想用npm安裝,然后import的方式引用Fabric.js,誰知道引進來以后總是出錯;后來發(fā)現(xiàn)只要用npm管理,F(xiàn)abric就認為自己跑在服務器端的Node.js環(huán)境中,所以需要依賴一些后端解析dom的庫——崩潰,我明明只是在瀏覽器中使用啊。Github上有人提過這個issue,建議提供前端版本的npm管理配置,但開源方好像沒有精力搞這個事兒。

最后無奈,直接在最外層的html里加<script>標簽引用,終于成功加載。標簽引用,終于成功加載。標簽引用,終于成功加載。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,175評論 3 119
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,828評論 25 709
  • 現(xiàn)在的我,并不快樂。 上班的時候,總想著快點下班,周一到周三的時候,總盼望著周五的到來。以前上班的時候只登錄工作Q...
    Danbo閱讀 247評論 0 1
  • 春華秋實這個詞,既美又深。春華給人以繽紛感,秋實給人以豐厚感。經(jīng)春到秋,含苞結果...
    冰夫閱讀 236評論 0 1
  • 杜媛藥學專業(yè)技術業(yè)績工作報告 我很榮幸加入益豐大藥房連鎖股份有限公司,不知不覺工作已有三年了。本人畢...
    媛媛噠14閱讀 207評論 0 0

友情鏈接更多精彩內(nèi)容