上次解決完CORS問題之後(自行寫一個PROXY傳回圖片解決), 老闆仍未收貨, 因為Toast UI Image Editor plugin 未能做到轉換text font family和object alignment的功能。結果把心一橫, 自行寫一個image editor功能出來。
自行寫editor很多災多難, 但滿足度很高, 因為很多功能也很有趣味, 使用時自由度很大 :)
使用了一個叫fabric JS的Tool, 它是一個專門為html5 canvas而設的library, 可以幫忙做到需求所要的功能:
- 加入背景圖片
- 無限加入文字objects
(使用IText object可修改文字) - 無限加入圖片objects
- 文字可轉換font family (Toast UI editor未能提供此功能)
- 文字可bold
(參考這裡) - 文字可italic
- 文字可underline
- 文字可
Strike though - 文字可調顏色
(使用了插件jscolor來輔助實現) - 文字和圖片objects可調opacity
(使用了jQuery slider來輔助實現) - objects可一次靠左、靠右、靠上、靠下和置中對齊 (Toast UI editor未能提供此功能)
(參考這裡 和 這裡 和 這裡) - 有一些指示線幫助objects對齊
(參考這裡) - 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 ); 後變得好得多了。
其餘問題也解決得順暢得多了, 結果老闆也終於收貨了!
沒有留言:
張貼留言