本發(fā)明涉及文字編輯領(lǐng)域,尤其涉及一種文字顯示方法及裝置。
背景技術(shù):
對于現(xiàn)在的游戲來說,無論是運行在個人電腦上的客戶端游戲,還是運行在手機上的移動游戲,角色的個性化定制都已經(jīng)是不可或缺的功能,通過提供個性化定制的功能,可使得游戲玩家在游戲中獲取與其他玩家不一樣的體驗。
在游戲中每個玩家都有自己的名字,目前市面大多數(shù)的游戲都是應(yīng)用簡單的已有版權(quán)的字體,顯示字體的原有樣子,顯示的效果就是字體字庫中的樣式。
在一些游戲當(dāng)中,也可以由美術(shù)人員預(yù)先設(shè)計好藝術(shù)字,并將藝術(shù)字作為資源放入到游戲安裝包中,這樣子玩家就可以使用藝術(shù)字顯示自己的名字。
技術(shù)實現(xiàn)要素:
但是,藝術(shù)字需要美術(shù)人員單獨制作,多樣性受到限制,不能滿足玩家自主定制的需求。而且藝術(shù)字資源是以圖片形式輸出,資源較大,會使得安裝包的數(shù)據(jù)量增大,增加了下載所需的時間,也占用了用戶的存儲空間。
針對上述問題,本發(fā)明的目的在于提供一種文字顯示方法,包括如下步驟:
讀取待顯示文字的點陣及配色貼圖;
對所述待顯示文字的點陣進(jìn)行逐單位掃描,并根據(jù)每個單位的單位號及所述待顯示文字的字體尺寸計算得到每個單位的相對位置比率;
根據(jù)所述每個單位的相對位置比率對所述配色貼圖進(jìn)行顏色采樣,獲得每個單位的采樣顏色值;
根據(jù)所述點陣及所述點陣的每個單位的采樣顏色值,生成配色點陣;
根據(jù)所述配色點陣生成在顯示器上顯示的文字。
上述技術(shù)方案中,通過設(shè)計所述配色貼圖對所述待顯示文字進(jìn)行配色處理,使得所述待顯示文字可以根據(jù)不同的配色貼圖呈現(xiàn)多樣化的顯示效果。由于不需要對每個文字進(jìn)行單獨的制作設(shè)計,從而減少了制作藝術(shù)字所耗費的時間,而且由于配色貼圖的數(shù)據(jù)量很小并可重復(fù)利用,也不會出現(xiàn)由于整個安裝包的數(shù)據(jù)量過大而導(dǎo)致的下載耗費時間長及占用空間大的問題。
優(yōu)選地,所述單位為行或列;則所述相對位置比率r=i/h,其中,i為所述點陣的行號,h為所述待顯示文字的字體高度;或者,
所述相對位置比率r=i/h,其中,i為所述點陣的列號,h為所述待顯示文字的字體寬度。
優(yōu)選地,所述根據(jù)所述每個單位的相對位置比率對所述配色貼圖進(jìn)行顏色采樣,獲得每個單位的采樣顏色值,具體為:
根據(jù)所述每個單位的相對位置比率r及所述配色貼圖的長度m計算得到每個單位的采樣位置
根據(jù)所述每個單位的采樣位置對所述配色貼圖進(jìn)行顏色采樣,獲得每個單位的采樣顏色值。
優(yōu)選地,所述采樣位置通過對(r×m)進(jìn)行向下取整獲得。
優(yōu)選地,所述配色貼圖的寬度為1個像素。
優(yōu)選地,在根據(jù)所述點陣及所述點陣的每個單位的采樣顏色值,生成配色點陣之后,在根據(jù)所述配色點陣生成在顯示器上顯示的文字之前,還包括:
在所述配色點陣的邊緣擴充預(yù)定寬度的透明像素區(qū)域;
根據(jù)所述透明像素區(qū)域的寬度獲得掃描窗口的尺寸,并利用所述掃描窗口對所述擴充點陣進(jìn)行掃描,計算所述掃描窗口覆蓋的像素的透明度平均值;
當(dāng)所述透明度平均值不等于0且不等于1時,將所述掃描窗口覆蓋的區(qū)域標(biāo)記為描邊區(qū)域,并將所述描邊區(qū)域內(nèi)的像素的顏色值設(shè)置為預(yù)設(shè)的描邊顏色值。
本優(yōu)選方案中,先對所述配色點陣的邊緣擴充預(yù)定寬度的透明像素區(qū)域,再通過掃描窗口逐一掃描的方法判斷出所述配色點陣的描邊區(qū)域,并對所述描邊區(qū)域擴充描邊顏色值,從而完成了對所述待顯示文字的描邊操作,使得所述待顯示文字顯示效果更立體和多樣化。
優(yōu)選地,在根據(jù)所述點陣及所述點陣的每個單位的采樣顏色值,生成配色點陣之后還包括:
讀取預(yù)設(shè)的底圖,并對所述底圖及所述配色點陣進(jìn)行位置匹配;
則所述根據(jù)所述配色點陣生成在顯示器上顯示的文字具體為:
根據(jù)所述配色點陣及所述底圖,生成在顯示器上顯示的文字底圖組合。
本優(yōu)選方案中,通過將所述底圖與所述待顯示文字進(jìn)行組合顯示,從而獲得更多樣化的文字顯示效果。
本發(fā)明還提供了一種文字顯示裝置,包括:
讀取單元,用于讀取待顯示文字的點陣及配色貼圖;
掃描單元,用于對所述待顯示文字的點陣進(jìn)行逐單位掃描,并根據(jù)每個單位的單位號及所述待顯示文字的字體尺寸計算得到每個單位的相對位置比率;
采樣單元,用于根據(jù)所述每個單位的相對位置比率對所述配色貼圖進(jìn)行顏色采樣,獲得每個單位的采樣顏色值;
配色單元,用于根據(jù)所述點陣及所述點陣的每個單位的采樣顏色值,生成配色點陣;
顯示單元,用于根據(jù)所述配色點陣生成在顯示器上顯示的文字。
優(yōu)選地,所述單位為行或列;則所述相對位置比率r=i/h,其中,i為所述點陣的行號,h為所述待顯示文字的字體高度;或者,
所述相對位置比率r=i/h,其中,i為所述點陣的列號,h為所述待顯示文字的字體寬度。
優(yōu)選地,所述采樣單元具體包括:
采樣位置計算模塊,用于根據(jù)所述每個單位的相對位置比率r及所述配色貼圖的長度m計算得到每個單位的采樣位置;
顏色采樣模塊,用于根據(jù)所述每個單位的采樣位置對所述配色貼圖進(jìn)行顏色采樣,獲得每個單位的采樣顏色值。
優(yōu)選地,所述采樣位置通過對(r×m)進(jìn)行向下取整獲得。
優(yōu)選地,所述配色貼圖的寬度為1個像素。
優(yōu)選地,還包括:
擴充單元,用于在所述配色點陣的邊緣擴充預(yù)定寬度的透明像素區(qū)域;
窗口掃描單元,用于根據(jù)所述透明像素區(qū)域的寬度獲得掃描窗口的尺寸,并利用所述掃描窗口對所述擴充點陣進(jìn)行掃描,計算所述掃描窗口覆蓋的像素的透明度平均值;
描邊單元,用于當(dāng)所述透明度平均值不等于0且不等于1時,將所述掃描窗口覆蓋的區(qū)域標(biāo)記為描邊區(qū)域,并將所述描邊區(qū)域內(nèi)的像素的顏色值設(shè)置為預(yù)設(shè)的描邊顏色值。
優(yōu)選地,還包括:
底圖匹配單元,用于讀取預(yù)設(shè)的底圖,并對所述底圖及所述配色點陣進(jìn)行位置匹配;
則所述顯示單元具體用于,根據(jù)所述配色點陣及所述底圖,生成在顯示器上顯示的文字底圖組合。
附圖說明
為了更清楚地說明本發(fā)明的技術(shù)方案,下面將對實施方式中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施方式,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例提供的文字顯示方法的流程示意圖。
圖2是本發(fā)明實施例提供的一種配色貼圖的示意圖。
圖3是底圖和文字在屏幕上的效果顯示圖。
圖4是本發(fā)明實施例提供的文字顯示裝置的結(jié)構(gòu)示意圖。
圖5是圖4的采樣單元的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
請參閱圖1,本發(fā)明實施例提供一種文字顯示方法,包括如下步驟:
S101,讀取待顯示文字的點陣及配色貼圖。
在本發(fā)明實施例中,所述待顯示文字為系統(tǒng)或者已有版權(quán)的文字,其字體和文字尺寸在游戲開發(fā)階段已預(yù)先設(shè)置好。
在本發(fā)明實施例中,所述待顯示文字可以以點陣或矢量字的形式進(jìn)行存儲。其中,點陣是描述文字顯示在屏幕上的點集合,當(dāng)屏幕中的點在該點集合中時就顯示字的顏色,否則不做操作。矢量字是通過數(shù)學(xué)方程來描述的,一個字形上分區(qū)出若干個關(guān)鍵點,相鄰關(guān)鍵點之間由一條光滑曲線連接,這條曲線可以由有限個參數(shù)來唯一確定。矢量字的好處是字體可以無級縮放而不會產(chǎn)生變形。矢量字在顯示或者打印出來之前需要進(jìn)行光柵化,光柵化后和點陣的表述是相同的。
在本發(fā)明實施例中,所述配色貼圖為用于對所述待顯示文字進(jìn)行配色的貼圖,其中,所述配色貼圖由美術(shù)人員預(yù)先制作好后存放于安裝包內(nèi)。如圖2所示,圖2為本發(fā)明實施例提供的一個配色貼圖的示意圖。其中,所述配色貼圖為一個m*1(長度為m個像素單位,寬度為1個像素單位)的貼圖,即一共包含有m個像素,每個像素的顏色值可相同也可不同,例如,所述配色貼圖長度方向上的像素的顏色值變化可呈一個金屬色過渡,也可呈從淺紅到深紅過渡,或其他任意配色形式,本發(fā)明不做具體限定。
需要說明的是,在本發(fā)明實施例中,所述配色貼圖的選取可由用戶自己選擇(即用戶自己選擇需要什么形式的配色貼圖),也可通過游戲邏輯自定義選擇,本發(fā)明不做具體限定。
需要說明的是,較佳地,在本發(fā)明實施例中,所述配色貼圖的長度大于所述待顯示字體的字體尺寸(如字體高度或字體寬度),且優(yōu)選的,所述配色貼圖的長度為256個像素,則此時,一個配色貼圖的數(shù)據(jù)量大小大致為2Kb。
S102,對所述待顯示文字的點陣進(jìn)行逐單位掃描,并根據(jù)每個單位的單位號及所述待顯示文字的字體尺寸計算得到每個單位的相對位置比率。
S103,根據(jù)所述每個單位的相對位置比率對所述配色貼圖進(jìn)行顏色采樣,獲得每個單位的采樣顏色值。
S104,根據(jù)所述點陣及所述點陣的每個單位的采樣顏色值,生成配色點陣。
在本發(fā)明實施例中,所述單位為行或列,由于所述待顯示文字的點陣是以方陣的形式顯示,因此可從上到下(或從下到上)進(jìn)行逐行掃描,也可從左到右(或從右到左)進(jìn)行逐列掃描。
在本發(fā)明實施例中,所述相對位置比率r=i/h,其中,i為所述點陣的行號,h為所述待顯示文字的字體高度;或者,所述相對位置比率r=i/h,其中,i為所述點陣的列號,h為所述待顯示文字的字體寬度。
具體地,以從上到下進(jìn)行逐行掃描為例,在掃描時,可以獲取當(dāng)前掃描行的行號i,然后根據(jù)所述當(dāng)前掃描行的行號i及所述待顯示文字的字體高度h計算得到當(dāng)前掃描行的相對位置比率r。接著,根據(jù)所述相對位置比率r及所述配色貼圖的長度m計算采樣位置idx,其中,所述采樣位置idx通過對(r×m)進(jìn)行向下取整獲得,即idx=floor(r×m),當(dāng)然,應(yīng)當(dāng)理解的是,在本發(fā)明的其他實施例中,也可以通過向上取整或其他計算方式來獲得采樣位置,本發(fā)明不做具體限定。
最后,根據(jù)所述采樣位置對所述配色貼圖進(jìn)行顏色采樣,獲得與所述當(dāng)前掃描行對應(yīng)的采樣顏色值,并將所述采樣顏色值配置給與所述行號對應(yīng)的像素。
例如,假設(shè)所述當(dāng)前掃描行的行號為2,所述待顯示文字的字體高度為20,所述配色貼圖的長度為256,則r=2/20=0.1,idx=floor(r×m)=fmoor(256×0.1)=25。
假設(shè)所述配色貼圖上,采樣位置為25的像素(即第25個像素)對應(yīng)的顏色值(RGB值)為(a,b,c),則(a,b,c)即為通過采樣獲得的采樣顏色值。
在本發(fā)明實施例中,在完成對當(dāng)前掃描行的采樣顏色配置后,繼續(xù)跳到下一行進(jìn)行掃描,并重復(fù)上述步驟,直到所述點陣的所有行都完成采樣顏色配置后,即生成配色點陣。
需要說明的是,在本發(fā)明實施例中,通過設(shè)計不同的配色貼圖即可獲得不同的配色點陣,進(jìn)而獲得不同的文字顯示效果,而且即使所述待顯示文字的字體大小發(fā)生變化,也不影響配色的效果。
S105,根據(jù)所述配色點陣生成在顯示器上顯示的文字。
在本發(fā)明實施例中,對所述配色點陣進(jìn)行繪制渲染,即可生成顯示在所述顯示器上的文字。
綜上所述,本發(fā)明實施例提供的文字顯示方法,通過預(yù)先設(shè)計的所述配色貼圖對所述待顯示文字進(jìn)行配色處理,使得所述待顯示文字可以根據(jù)不同的配色貼圖呈現(xiàn)多樣化的顯示效果。由于不需要對每個待顯示文字進(jìn)行單獨的制作設(shè)計,從而減少了制作藝術(shù)字所耗費的時間,而且由于配色貼圖的數(shù)據(jù)量很小,也不會出現(xiàn)由于加入過多藝術(shù)字而引起整個安裝包的數(shù)據(jù)量過大而導(dǎo)致的下載耗費時間長及占用空間大的問題。
為了便于對本發(fā)明實施例的了解,下面將對本發(fā)明的一些優(yōu)選實施例做更進(jìn)一步的描述。
第一個優(yōu)選實施例:
在一些情況下,為了使得所述待顯示文字整體顯得更立體,需要對所述待顯示文字的邊緣部分進(jìn)行描邊處理。
則在本優(yōu)選實施例中,在步驟S104之后,在步驟S105之前,還包括:
S106,在所述配色點陣的邊緣擴充預(yù)定寬度的透明像素區(qū)域。
例如,可在所述配色點陣的邊緣擴充寬度為3個像素的透明像素區(qū)域,其中,透明像素區(qū)域內(nèi)擴充的像素的透明度為0(即完全透明)。
當(dāng)然,也可擴充其他寬度的透明像素區(qū)域,本發(fā)明不做具體限定。
S107,根據(jù)所述透明像素區(qū)域的寬度獲得掃描窗口的尺寸,并利用所述掃描窗口對所述擴充點陣進(jìn)行掃描,計算所述掃描窗口覆蓋的像素的透明度平均值。
在本發(fā)明實施例中,如果所述預(yù)定寬度n大于一個像素的寬度,則所述掃描窗口的尺寸可選取為n×n,如果n為1,即擴充的透明像素區(qū)域的寬度為一個像素,那么在掃描時,可用(n+1)×(n+1)(即2×2)的掃描窗口進(jìn)行掃描,這些方案均在本發(fā)明的保護(hù)范圍之內(nèi)。
S108,當(dāng)所述透明度平均值不等于0且不等于1時,將所述掃描窗口覆蓋的區(qū)域標(biāo)記為描邊區(qū)域,并將所述描邊區(qū)域內(nèi)的像素的顏色值設(shè)置為預(yù)設(shè)的描邊顏色值。
掃描時,可讀取該掃描窗口所覆蓋的所有像素的alpha值(即透明度),然后求平均,即可得到所述掃描窗口的透明度平均值。由于構(gòu)成待顯示文字的像素的alpha值為1,而擴充的像素的alpha值為0。因此透明度平均值等于0代表該掃描窗口所覆蓋的區(qū)域還未進(jìn)入描邊區(qū)域,所以不需要對這些像素擴充描邊顏色。透明度平均值等于1表示掃描窗口所覆蓋的區(qū)域內(nèi)的像素是所述待顯示文字內(nèi)部的像素,也不需要對像素擴充描邊顏色。而對于透明度平均值大于0且小于1.0的情況,則表示該掃描窗口所覆蓋的區(qū)域為描邊區(qū)域,需要為這個區(qū)域內(nèi)的像素擴充描邊顏色值(即將所述描邊區(qū)域內(nèi)的像素的顏色值設(shè)置為預(yù)設(shè)的描邊顏色值),這樣就完成了描邊。
本優(yōu)選實施例中,先對所述配色點陣的邊緣擴充預(yù)定寬度的透明像素區(qū)域,再通過掃描窗口逐一掃描并計算透明度平均值的方法判斷出所述待顯示文字的描邊區(qū)域,并對所述描邊區(qū)域擴充描邊顏色值,從而完成了對所述待顯示文字的描邊操作,使得所述待顯示文字顯示效果更立體和多樣化。
第二個優(yōu)選實施例:
優(yōu)選地,在步驟S104之后,還包括:
S109,讀取預(yù)設(shè)的底圖,并對所述底圖及所述配色點陣進(jìn)行位置匹配。
則步驟S105具體為:
根據(jù)所述配色點陣及所述底圖,生成在顯示器上顯示的文字底圖組合。
在一些情況下,還可對所述待顯示文字添加底圖來獲得更多樣化的文字顯示效果。
如圖3所述,所述底圖02由美術(shù)人員預(yù)先制作并存放于游戲安裝包中,所述底圖02可為單一顏色的底圖(如一個藍(lán)色底圖),也可為有特定圖案或花紋的圖片,本發(fā)明不做具體限定。
在本優(yōu)選實施例中,根據(jù)所述待顯示文字01的大小和所述底圖02的大小可以調(diào)整所述待顯示文字01在所述底圖02中顯示的位置,從而使得所述待顯示文字01和所述底圖02組合顯示,顯示出多樣化的顯示效果。
其中,所述底圖02與配色點陣的位置匹配可以有如下兩種方法:
1、根據(jù)屏幕坐標(biāo)(像素單位)控制底圖的位置。
在這種情況下,可直接指定所述底圖在所述屏幕坐標(biāo)上的位置,其中,這個位置是由所述配色點陣的顯示位置來決定的。
2、根據(jù)所述待顯示文字01顯示的位置確定所述底圖02的顯示位置,其中,所述待顯示文字01的顯示位置可以通過圖片的尺寸確定圖片的中心點,然后對齊中心點進(jìn)行繪制來獲得。
本優(yōu)選實施例中,通過對所述底圖和待顯示文字進(jìn)行組合顯示,從而獲得更多樣化的文字顯示效果。
請參閱圖4,本發(fā)明還提供一種文字顯示裝置100,包括:
讀取單元10,用于讀取待顯示文字的點陣及配色貼圖。
掃描單元20,用于對所述待顯示文字的點陣進(jìn)行逐單位掃描,并根據(jù)每個單位的單位號及所述待顯示文字的字體尺寸計算得到每個單位的相對位置比率。
采樣單元30,用于根據(jù)所述每個單位的相對位置比率對所述配色貼圖進(jìn)行顏色采樣,獲得每個單位的采樣顏色值。
配色單元40,用于根據(jù)所述點陣及所述點陣的每個單位的采樣顏色值,生成配色點陣。
顯示單元50,用于根據(jù)所述配色點陣生成在顯示器上顯示的文字。
綜上所述,本發(fā)明實施例提供的文字顯示裝置100,通過設(shè)計所述配色貼圖對所述待顯示文字進(jìn)行配色處理,使得所述待顯示文字可以根據(jù)不同的配色貼圖呈現(xiàn)多樣化的顯示效果。由于不需要對每個文字進(jìn)行單獨的制作設(shè)計,從而減少了制作藝術(shù)字所耗費的時間,而且由于配色貼圖的數(shù)據(jù)量很小,也不會出現(xiàn)由于整個安裝包的數(shù)據(jù)量過大而導(dǎo)致的下載耗費時間長及占用空間大的問題。
優(yōu)選地,所述單位為行或列;則所述相對位置比率r=i/h,其中,i為所述點陣的行號,h為所述待顯示文字的字體高度;或者,
所述相對位置比率r=i/h,其中,i為所述點陣的列號,h為所述待顯示文字的字體寬度。
優(yōu)選地,請一并參閱圖5,所述采樣單元30具體包括:
采樣位置計算模塊31,用于根據(jù)所述每個單位的相對位置比率r及所述配色貼圖的長度m計算得到每個單位的采樣位置;
其中,所述采樣位置通過對(r×m)進(jìn)行向下取整獲得;當(dāng)前,也可以是向上取值或其他取值方式,本發(fā)明不做具體限定。
顏色采樣模塊32,用于根據(jù)所述每個單位的采樣位置對所述配色貼圖進(jìn)行顏色采樣,獲得每個單位的采樣顏色值。
優(yōu)選地,所述配色貼圖的寬度為1個像素。
優(yōu)選地,所述文字顯示裝置100還包括:
擴充單元60,用于在所述配色點陣的邊緣擴充預(yù)定寬度的透明像素區(qū)域。
窗口掃描單元70,用于根據(jù)所述透明像素區(qū)域的寬度獲得掃描窗口的尺寸,并利用所述掃描窗口對所述擴充點陣進(jìn)行掃描,計算所述掃描窗口覆蓋的像素的透明度平均值;
描邊單元80,用于根據(jù)所述透明像素區(qū)域的寬度獲得掃描窗口的尺寸,并利用所述掃描窗口對所述擴充點陣進(jìn)行掃描,計算所述掃描窗口覆蓋的像素的透明度平均值。
本優(yōu)選實施例中,先對所述配色點陣的邊緣擴充預(yù)定寬度的透明像素區(qū)域,再通過掃描窗口逐一掃描的方法判斷出所述待顯示文字的描邊區(qū)域,并對所述描邊區(qū)域擴充描邊顏色值,從而完成了對所述待顯示文字的描邊操作,使得所述待顯示文字顯示效果更立體和多樣化。
優(yōu)選地,所述文字顯示裝置100還包括:
底圖匹配單元90,用于讀取預(yù)設(shè)的底圖,并對所述底圖及所述配色點陣進(jìn)行位置匹配;
則所述顯示單元50具體用于,根據(jù)所述配色點陣及所述底圖,生成在顯示器上顯示的文字底圖組合。
本優(yōu)選實施例中,通過對所述底圖和待顯示文字進(jìn)行組合顯示,從而獲得更多樣化的文字顯示效果。
以上所揭露的僅為本發(fā)明一種較佳實施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Onmy Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。