劉裕拯 黃政 歐陽樂 張寶鑫
摘 要在智能手機龐大的應用軟件市場中,從照片涂鴉到隨手筆記,繪板類APP作為重要的娛樂軟件豐富了我們的生活。本文提出了一款基于Android平臺的毛筆仿真效果的手寫APP,使我們能夠在手寫時生成具有毛筆仿真筆跡效果的圖片,并予以保存、發(fā)送。同時設計了軟件的外觀,描述了實現(xiàn)此APP的算法技術(shù)。
【關(guān)鍵詞】Android 繪板 手寫 毛筆仿真
隨著智能手機應用軟件市場的不斷擴大,繪板類APP也越來越多。從一開始的簡單涂鴉到手繪軟件,人們對于繪畫的娛樂性與藝術(shù)性的要求也與日俱增。本文設計提出了一款基于Android的仿毛筆效果的手寫APP,它類似于常見的繪板軟件,同時會將我們的手寫筆跡轉(zhuǎn)變?yōu)槊P風格,使之更具娛樂性與藝術(shù)性。
1 應用市場
目前各類應用市場上的繪板類APP,大多受到用戶的好評,其大致可以分為以下三類:相冊涂鴉類,隨筆繪板類,專業(yè)繪板類。其中,第一類軟件功能簡單,可玩性不強,多用于朋友圈照片分享;第三類軟件,如SBM(Autodesk SketchBook Mobile)功能強大,操作復雜,上手難度高,可用于制作精美的繪畫以及圖片的細節(jié)修改;而第二類,諸如各類記事本軟件,可以輕松涂鴉,方便記事,產(chǎn)生了許多小而美的軟件,本文所設計的軟件即屬此類。
2 軟件說明
此款APP是運行在Android平臺上的單機獨立軟件?;贏ndroid4.1版本開發(fā),在Android5.0版本上也測試通過。通過模擬毛筆書寫效果,起到了對手寫筆畫優(yōu)化的作用,生成了具有毛筆書寫效果的圖片,保存在系統(tǒng)默認的根目錄下,詳細位置為:/scard0/picture,用戶可在智能機的相冊中輕松找到當前的手寫繪圖作品。
3 簡要設計
3.1 界面設計
為了追求精簡干凈,繪圖界面設計成倒T字形,整個界面中只有底部有常駐工具欄,提供基本的操作按鈕,右側(cè)為滑動窗口小圖標。為了回避按鈕較多造成的不美觀,設計時放棄了較多的按鈕,只提供了,即時分享,保存繪畫,清除繪畫三個個按鈕。手機全屏全部是繪畫區(qū),而且最底部的工具欄采用透明設計,這樣可以將繪畫區(qū)的面積最大化,使手寫的感覺更加舒適。
3.2 功能設計
為了是此款獨立軟件使用起來更加方便,功能上設計了兩個滑動窗口。一個是底部滑動窗口,一個是右側(cè)滑動窗口。其中,底部滑動窗口可向上滑動,提供繪制的圖片預覽功能,相當于相冊。同時設計了點擊預覽圖片跳轉(zhuǎn)到相冊,長按圖片可刪除的功能,這樣既可以快速刪除,也可以充分調(diào)用手機自帶相冊的其他功能。而右側(cè)設計實現(xiàn)的滑動菜單,為了補充繪畫功能,提供了筆觸調(diào)節(jié)的功能,如:筆畫粗細調(diào)節(jié),筆墨濃淡設置,橡皮擦,撤銷上一步操作等。使軟件功能更加完整。
4 技術(shù)實現(xiàn)
由于此款APP是Android上的單機軟件,軟件體積應盡量小,所以我們并沒有采用龐大的筆畫庫設計,將用戶的手寫筆跡與數(shù)據(jù)庫中的筆畫進行匹配,而是直接對手寫筆跡進行取樣、參數(shù)調(diào)整、后臺處理、圖形回顯等一系列操作產(chǎn)生仿真圖像。
毛筆效果說明:毛筆筆尖一般是由獸毛扎成束狀,其下筆并不如鉛筆一樣是單一軌跡,因而下筆會有一定程度的縱深與側(cè)傾。在這里,縱深定義為毛筆筆尖各簇毛須所產(chǎn)生的效果。側(cè)傾定義為毛筆非垂直繪畫時,由筆桿側(cè)傾產(chǎn)生的局部墨水偏濃,筆畫肥厚的效果。
5 效果模擬
5.1 縱深效果
為了方便敘述,我們定義如圖1所示的ABCD這樣四個點。
其中AB方向為繪制方向,CD方向與AB方向垂直。假設點C到線段AB的距離為2個單位長度(這個長度由筆畫粗細決定,可以人為設置),那么點D到線段AB的距離應該與C相近,但不相等,如2.3或2.5個單位長度,這個數(shù)值通過手寫的按壓面積獲取,并進行一定的處理。
在手寫過程中,線段AB是我們所能實際捕捉到的軌跡。為了模擬毛筆的縱深效果,我們將在線段CD的長度范圍內(nèi),作線段AB的平行線(嚴格的說并不是平行線而且大多數(shù)都不是平行線),并通過對這些平行線的數(shù)目及分布進行合理調(diào)整,來達到目的,如圖2所示。即在線段AB周圍離散地分布一組線段來模擬毛筆的筆須,當這一組線段的數(shù)目足夠多,并且位置足夠合理的時候,就能達到仿真毛筆筆跡的效果。
5.2 側(cè)傾效果
當自由繪制的時候,筆畫路徑顯然不如上述規(guī)整。為方便敘述,我們假設前一個筆畫路徑的取樣點為O,現(xiàn)在正在繪制的取樣點為P,P為側(cè)傾效果產(chǎn)生后實際繪制的點,即將繪制出的點為Q。并以點P為圓心,繪制一個指定半徑的圓,這個半徑由筆畫的粗細決定,可以在軟件的右滑菜單中人為調(diào)節(jié)。如圖3所示。
在手寫過程中,我們對手寫筆畫進行取樣。當點Q繪制成功的時候,通過計算點OPQ之間的夾角,決定P的位置,并繪制OP,Q P線段。為了防止生成的圖像變形,點P有相當高的概率落在以P為圓心的指定的圓中,在測試的算法中,這個概率在90%以上。當單位線段上,取樣點恰當時,可以較好的達到仿真筆跡的效果。這里需要特別說明的是,取樣點不能太多,太多會導致筆跡沒有濃淡差別。
6 結(jié)論
綜上所述,為補充手寫繪板的娛樂性與藝術(shù)性,本文設計提出了一款基于Android平臺的手寫毛筆圖形生成APP,并給出了模擬筆觸的關(guān)鍵算法。該軟件界面精簡,操作簡單,可玩性強,具有良好的娛樂性。
參考文獻
[1]張海江.中國水墨畫仿真中幾個關(guān)鍵問題的研究[D].天津大學,2004.
[2]陳露開.基于輪廓方法的實時手寫美化技術(shù)及應用[D].華南理工大學,2014.
[3]熊文闊.基于Android平臺手機圖形編輯軟件的設計與實現(xiàn)[D].北京郵電大學,2011.
作者簡介
劉裕拯(1995-),男,現(xiàn)為四川大學本科生。計算機科學與技術(shù)專業(yè)。
作者單位
四川大學計算機學院 四川省成都市 610207