2020年11月4日 星期三

多災多難的Image Editor(二)



上次解決完CORS問題之後(自行寫一個PROXY傳回圖片解決), 老闆仍未收貨, 因為Toast UI Image Editor plugin 未能做到轉換text font family和object alignment的功能。結果把心一橫, 自行寫一個image editor功能出來。


自行寫editor很多災多難, 但滿足度很高, 因為很多功能也很有趣味, 使用時自由度很大 :)


使用了一個叫fabric JS的Tool, 它是一個專門為html5 canvas而設的library, 可以幫忙做到需求所要的功能:

  1. 加入背景圖片
  2. 無限加入文字objects
    (使用IText object可修改文字)
  3. 無限加入圖片objects
  4. 文字可轉換font family (Toast UI editor未能提供此功能)
  5. 文字可bold
    (參考這裡)
  6. 文字可italic
  7. 文字可underline
  8. 文字可Strike though
  9. 文字可調顏色
    (使用了插件jscolor來輔助實現)
  10. 文字和圖片objects可調opacity
    (使用了jQuery slider來輔助實現)
  11. objects可一次靠左、靠右、靠上、靠下和置中對齊 (Toast UI editor未能提供此功能)
    (參考這裡 和 這裡 和 這裡)
  12. 有一些指示線幫助objects對齊
    (參考這裡)
  13. Undo / Redo
    (參考這裡)

寫時卡關了很久, 原因是call 了2次 new fabric.Canvas('myCanvas') 以致產生了2個overlapping fabric containers, 功能變得奇怪起來……

而且fabric js版本的問題, 網上的答案未必適合使用中的版本, 要找多個referemces整合。

還有使用jQuery dialog時因未有依據canvas height調整大小, 以致dialog移位得很厲害, 加入$('#tui-image-editor').dialog( "option", "height", newHeight ); 後變得好得多了。

其餘問題也解決得順暢得多了, 結果老闆也終於收貨了!


沒有留言:

張貼留言

[康復路] 試完又試

見了醫生,因為血色素又變低了,醫生想檢查是否「缺鐵」為成因,檢查又檢查…… 感覺有些麻煩……又抽血,又要留樣本…… 令我回想起當日入院的時光,因為一些原因,留樣本只需留一次,免卻留三次的麻煩;現在每天都要留一次,連續三天。每天早上就要跑醫院一趟再上班。 幸好也完成了。 第二次抽血...