保存原筆跡手寫字的系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種保存原筆跡手寫字的系統(tǒng)及方法。
【背景技術(shù)】
[0002]一直以來,市面上很多電子設(shè)備都具備手寫輸入的功能,其中大多數(shù)的手寫輸入是在電子裝置屏幕上進(jìn)行觸控手寫,通過其內(nèi)部的識別系統(tǒng)把手寫的各種字體轉(zhuǎn)換為可識別的標(biāo)準(zhǔn)字體顯示出來,此類手寫輸入缺乏原筆跡的個(gè)人特點(diǎn)及藝術(shù)美感。而已知的原筆跡手寫字輸入實(shí)現(xiàn)方式通常是將含有筆跡的最小區(qū)域截取下來保存為圖片,然后將圖片壓縮至文字大小后再插入文本區(qū)域輸出,此類方式會由于軌跡區(qū)域大小的不同,而壓縮圖片的比例就不一樣,最后顯示的文字的粗細(xì)不同,字體失真走樣,導(dǎo)致用戶體驗(yàn)效果較差。
【發(fā)明內(nèi)容】
[0003]鑒于以上內(nèi)容,有必要提供一種保存原筆跡手寫字的系統(tǒng),使用戶的手寫筆跡原樣輸出且所寫字跡粗細(xì)大小相同,從而提高用戶手寫輸入體驗(yàn)效果。
[0004]此外,還有必要提供一種保存原筆跡手寫字的方法。
[0005]一種保存原筆跡手寫字的系統(tǒng),運(yùn)行于電子裝置中,該系統(tǒng)包括:設(shè)置模塊,用于設(shè)置輸出的原筆跡手寫字的字體顏色及粗細(xì)程度;記錄模塊,用于采集在所述電子裝置的觸摸屏上輸入的原筆跡手寫字的路徑點(diǎn)信息;讀取模塊,用于讀取所述路徑點(diǎn)信息,組成原始的手寫字字跡;所述讀取模塊,還用于將所述原始的手寫字字跡繪制到與所述電子裝置手寫區(qū)域大小相同的Bitmap上,進(jìn)而獲取所述原始的手寫字字跡的最小軌跡范圍的長度和寬度;所述讀取模塊,還用于讀取所述電子裝置的文本域輸出字體的長度與寬度;優(yōu)化模塊,用于計(jì)算將所述原始的手寫字字跡在所述電子裝置的文本域輸出時(shí),需要壓縮的比例,其計(jì)算方法為:壓縮比例=(原始的手寫字字跡最小軌跡長度*寬度)/ (文本域輸出字體長度*寬度);所述優(yōu)化模塊,還用于調(diào)用Matrix類將原始的手寫字字跡的路徑點(diǎn)坐標(biāo)按所述壓縮比例進(jìn)行等比壓縮,并按照設(shè)置的字體顏色及粗細(xì)程度的,將壓縮過的手寫字跡徑繪制到與所述電子裝置文本域輸出字體大小相同的Bitmap上;所述優(yōu)化模塊,還用于調(diào)用轉(zhuǎn)化程序?qū)⑺鯞itmap轉(zhuǎn)化成圖片,插入所述文本域輸出。
[0006]一種保存原筆跡手寫字的方法,該方法包括步驟:讀出所述路徑點(diǎn)信息,組成原始的手寫字字跡;將所述原始的手寫字字跡繪制到與所述電子裝置觸摸屏的手寫區(qū)域大小相同的Bitmap上,讀取所述Bitmap上的手寫字字跡的最小軌跡范圍的長度和寬度;讀取所述電子裝置文本域輸出字體的長度與寬度;計(jì)算將原筆跡手寫字字跡在所述電子裝置的文本域輸出時(shí)需要壓縮的比例;將所述的原筆跡手寫字字跡按照計(jì)算得出的壓縮比例進(jìn)行等比壓縮;按照所述設(shè)置的字體顏色及粗細(xì)程度,將壓縮后的原筆跡手寫字字跡繪制到與所述電子裝置文本域的輸出字體大小相同的Bitmap上;將所述Bitmap轉(zhuǎn)化為圖片,插入所述電子裝置的文本域輸出。
[0007]相較于現(xiàn)有技術(shù),本發(fā)明所述的保存原筆跡手寫字的系統(tǒng)及方法通過采集用戶輸入的手寫字路徑點(diǎn)信息,將用戶輸入的原筆跡手寫字逐步優(yōu)化,達(dá)到輸出的字體粗細(xì)相同,顏色適宜,美觀典雅的目的,從而提高用戶手寫輸入體驗(yàn)效果。
【附圖說明】
[0008]圖1是本發(fā)明保存原筆跡手寫字的系統(tǒng)較佳實(shí)施例的運(yùn)行環(huán)境架構(gòu)圖。
[0009]圖2是本發(fā)明保存原筆跡手寫字的方法較佳實(shí)施例的流程圖。
[0010]圖3是本發(fā)明保存原筆跡手寫字的方法較佳實(shí)施例的手寫字軌跡最小范圍示意圖。
[0011]主要元件符號說明
[0012]電子裝置I
[0013]存儲裝置2
[0014]觸摸屏3
[0015]原筆跡系統(tǒng)10
[0016]設(shè)置模塊11
[0017]記錄模塊12
[0018]讀取模塊13
[0019]優(yōu)化模塊14
[0020]保存模塊15
[0021]如下【具體實(shí)施方式】將結(jié)合上述附圖進(jìn)一步說明本發(fā)明。
【具體實(shí)施方式】
[0022]參閱圖1所示,是本發(fā)明保存原筆跡手寫字的系統(tǒng)較佳實(shí)施例的運(yùn)行環(huán)境架構(gòu)圖。所述的保存原筆跡手寫字的系統(tǒng)(以下簡稱“原筆跡系統(tǒng)”)運(yùn)行于電子裝置I中。所述的電子裝置I包括但不僅限于,存儲裝置2及觸摸屏3。
[0023]所述的電子裝置I可以是手機(jī)、平板電腦、電子書等,所述的存儲裝置2可以是電子裝置I本身的內(nèi)存,還可以是外部存儲卡,如SM卡(Smart Media Card,智能媒體卡)、SD卡(Secure Digital Card,安全數(shù)字卡)、CF 卡(Compact Flash Card,標(biāo)準(zhǔn)閃存卡)、MMC 卡(Multi Media Card,多媒體卡)、TF 卡(Trans Flash Card)等。
[0024]所述的原筆跡系統(tǒng)10包括有設(shè)置模塊11、記錄模塊12、讀取模塊13、優(yōu)化模塊14及保存模塊15。所述功能模塊11-15的具體功能將在后文圖2的流程圖中作詳細(xì)描述。
[0025]參閱圖2所示,是本發(fā)明保存原筆跡手寫字的方法較佳實(shí)例的流程圖。通過如下步驟S21至步驟S30,本發(fā)明將用戶輸入的原筆跡手寫字逐步優(yōu)化,達(dá)到輸出的字體粗細(xì)相同,顏色適宜,美觀典雅的目的,從而提高用戶手寫輸入體驗(yàn)效果。
[0026]步驟S21,設(shè)置模塊11提供一個(gè)設(shè)置界面,于該界面內(nèi)選擇輸出的原筆跡手寫字字體的顏色及粗細(xì)程度。
[0027]例如,所述設(shè)置模塊11可以提供“較細(xì)、細(xì)、粗、較粗”四種不同的粗細(xì)程度選項(xiàng)及“赤、橙、黃、綠、青、藍(lán)、紫”七種不同的顏色選項(xiàng)供用戶選擇,用戶可根據(jù)實(shí)際需求選擇不同顏色不同粗細(xì)程度的原筆跡手寫輸入方式。例如,當(dāng)用戶須發(fā)布通知或告示時(shí),可選擇“黑色”“較粗”,從而體現(xiàn)通知或告示的正式性及嚴(yán)肅性。當(dāng)然,本發(fā)明并不僅限于提供“較細(xì)、細(xì)、粗、較粗”四種不同的粗細(xì)程度選項(xiàng)及“赤、橙、黃、綠、青、藍(lán)、紫”七種不同的顏色選項(xiàng)供用戶選擇,本發(fā)明還可提供其他任意類型的字體粗細(xì)程度選項(xiàng)及字體顏色選項(xiàng)供用戶選擇或用戶進(jìn)行自定義設(shè)置。
[0028]步驟S22,記錄模塊12采集所述電子裝置I的觸摸屏3上輸入的原筆跡手寫字的路徑點(diǎn)信息。
[0029]當(dāng)用戶在觸摸屏3上進(jìn)行手寫輸入時(shí),所述記錄模塊12記錄不斷產(chǎn)生的包括Touch_down事件、Touch_up事件及Touch_move事件在內(nèi)的Touch事件組。一個(gè)Touch事件組(即一個(gè)Touch_down事件加上一個(gè)Touch_up事件及一個(gè)Touch_move事件)對應(yīng)所述原筆跡手寫字的一筆。需要注意的是,本發(fā)明所述的一筆,并非嚴(yán)格意義上的標(biāo)準(zhǔn)字的一筆,而是從手指接觸所述電子裝置I的觸摸屏3開始,到用戶手指離開屏幕為止,可以是一筆,也可以是多筆,甚至可以是一個(gè)字乃至多個(gè)字。所述的一筆由不同的Touch點(diǎn)構(gòu)成,記錄模塊在記錄時(shí),選取所述電子裝置I的手寫區(qū)域左下角的點(diǎn)為坐標(biāo)零點(diǎn)建立如圖3所示的坐標(biāo)軸,假設(shè)所述電子裝置I的觸摸屏3的分辨率為320*640,則其橫坐標(biāo)為所述電子裝置I的觸摸屏3的橫向像素點(diǎn),其最大值為320,縱坐標(biāo)為所述電子裝置I的觸摸屏3的縱向像素點(diǎn),其最大值為640,由此確定所有Touch點(diǎn)的坐標(biāo),記錄下來即為所述原筆跡手寫字的路徑點(diǎn)坐標(biāo)。所述原筆跡手寫字的一筆為一個(gè)Path,由不同坐標(biāo)的Touch點(diǎn)構(gòu)成,一個(gè)或者幾個(gè)相鄰的Path構(gòu)成一個(gè)所述原筆跡手寫字字跡HandWrite。每一次手寫輸入不管寫多少個(gè)字,所有的路徑點(diǎn)信息均被所述記錄模塊12暫存于所述電子裝置I的運(yùn)行內(nèi)存中。
[0030]步驟S23,讀取模塊13依次讀取所述運(yùn)行內(nèi)存中保存的所有路徑點(diǎn)信息,組成原始的手寫字字跡。
[0031]步驟S24,所述讀取模塊13調(diào)用繪制函數(shù)(常見的操作系統(tǒng)如Android均有此函數(shù)),將所述原始的手寫字字跡繪制到與所述電子裝置I觸摸屏3的手寫區(qū)域大小相同的位圖文件(Bitmap)上。所述的Bitmap是所述電子裝置I操作系統(tǒng)(如Android)自帶的服務(wù),其背景顏色默認(rèn)是透明的,所述讀取模塊13通過遍歷算法查找所述Bitmap上像素點(diǎn)顏色與背景顏色不一致的點(diǎn)的坐標(biāo),確定所述Bitmap上的手寫字字跡的最小軌跡范圍,進(jìn)而獲取其最小軌跡范圍的長度與寬度,即為原始的手寫字字跡最小軌跡范圍的長度與寬度。
[0032]如圖3所示,用戶手寫輸入一個(gè)“大”字,經(jīng)過上述步驟,所述“大”字被繪制到了與所述電子裝置I的觸摸屏3大小相同的Bitmap上,讀取模塊13通過遍歷算法查找該Bitmap上像素點(diǎn)顏色與背景顏色不一致的點(diǎn)的坐標(biāo),篩選出所述“大”字的縱向最高點(diǎn)(c,d)和縱向最低點(diǎn)(e, f),橫向最遠(yuǎn)點(diǎn)(e, f)及橫向最近點(diǎn)(a, b),進(jìn)而獲取所述“大”字的最小軌跡徂圍的長度=e_a,覽度=d_f。
[0033]步驟S25,所述讀取模塊13讀取所述電子裝置I文本域的輸出字體的長度與寬度。
[0034]步驟S26,優(yōu)化模塊14計(jì)算將所述原始的手寫字在電子裝置I的文本域輸出時(shí),需要壓縮的比例。其計(jì)算方法為:壓縮比例=(原始的手寫字字跡最小軌跡長度*寬度)/(文本域輸出字體長度*寬度)。
[0035]步驟S27,所述優(yōu)化模塊14調(diào)用Matrix類將所述原筆跡手寫字字跡的路徑點(diǎn)坐標(biāo)按所述壓縮比例進(jìn)行等比壓縮。如原Touch點(diǎn)的坐標(biāo)為(200,300),所述優(yōu)化模塊14計(jì)算出的壓縮比例為100,則等比壓縮后的Touch點(diǎn)的坐標(biāo)為(2,3)。
[0036]步驟S28,按照設(shè)置模塊11中設(shè)置的字體顏色及粗細(xì)程度,將壓縮過的原筆跡手寫字字跡繪制到與所