欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種渲染文字的方法、裝置及電子設(shè)備與流程

文檔序號:11864297閱讀:262來源:國知局
一種渲染文字的方法、裝置及電子設(shè)備與流程

本發(fā)明涉及信息展示技術(shù),尤其涉及一種渲染文字的方法、裝置及電子設(shè)備。



背景技術(shù):

隨著計算機通信以及互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,電子設(shè)備,例如,智能移動電話、個人數(shù)字助理、掌上電腦、筆記本電腦等應(yīng)用越來越廣泛。需要在電子屏幕上呈現(xiàn)的內(nèi)容也越來越豐富,例如,呈現(xiàn)電子設(shè)備中安裝的各應(yīng)用程序(APP,Application)圖標(biāo)、文本、設(shè)置的提示信息文本以及便簽等,極大地滿足了不同用戶的個性化需求。

目前,呈現(xiàn)在電子設(shè)備屏幕(窗體)中的文字,一般采用圖形設(shè)備接口(GDI,Graphics Device Interface)或GDI+進行繪制,在完成文字的繪制后,操作系統(tǒng)依據(jù)文字所在窗體的背景顏色,對GDI繪制的文字邊緣的顏色進行渲染,然后,將經(jīng)過渲染的文字呈現(xiàn)在窗體。其中,GDI是負責(zé)操作系統(tǒng)與繪圖應(yīng)用程序之間的信息交換,處理所有繪圖應(yīng)用程序的圖形輸出,在Windows操作系統(tǒng)下,用戶可以利用GDI提供的相關(guān)函數(shù),方便地在屏幕、打印機及其它輸出設(shè)備上輸出圖形以及文本(文字)等操作。

但該渲染文字的方法,由于通過GDI繪制的文字是與設(shè)備相關(guān)的,使得操作系統(tǒng)在對通過GDI函數(shù)繪制的文字的邊緣進行渲染時,被渲染的文字的顏色需要依據(jù)文字所在窗體(區(qū)域)的背景顏色進行計算得到。這樣,被渲染文字的顏色可能與該文字所在窗體的背景顏色相同或相近似,導(dǎo)致在窗體中呈現(xiàn)的文字較為模糊,不易辨認,渲染效果差。例如,在透明窗體、窗體的背景顏色為白色的情形下,如果繪制的文字顏色為白色,則通過操作系統(tǒng)的渲染,文字邊緣的顏色被渲染成與窗體的白色背景顏色相似的顏色,使得該文字在透明窗體下,字體較為模糊、不易辨認,降低了用戶瀏覽窗體的應(yīng)用體驗。



技術(shù)實現(xiàn)要素:

有鑒于此,本發(fā)明實施例提供一種渲染文字的方法、裝置及電子設(shè)備,能夠提升窗體中展示的文字的渲染效果,提高文字的辨認度,以解決現(xiàn)有的渲染文字的方法被渲染文字的顏色與窗體的背景顏色相同或相近似,導(dǎo)致在窗體中呈現(xiàn)的文字不易辨認,渲染效果差的問題。

第一方面,本發(fā)明實施例提供一種渲染文字的方法,包括:

創(chuàng)建一空白設(shè)備無關(guān)位圖,在創(chuàng)建的所述空白設(shè)備無關(guān)位圖中繪制待渲染文字,得到文字位圖;

獲取所述文字位圖的顏色平均值;

依據(jù)所述顏色平均值以及所述文字位圖的顏色當(dāng)前值,計算所述待渲染文字的顏色渲染值;

依據(jù)所述顏色平均值設(shè)置所述待渲染文字的透明度;

利用所述待渲染文字的透明度以及所述顏色渲染值,對所述待渲染文字進行渲染。

結(jié)合第一方面,在第一方面的第一種實施方式中,所述獲取所述文字位圖的顏色平均值包括:

獲取所述文字位圖包含的像素點行數(shù)以及像素點列數(shù);

遍歷所述文字位圖包含的每一像素點,提取所述每一像素點的的像素值并進行累加;

計算累加的像素值的和值與像素點總數(shù)的比值,得到所述文字位圖的顏色平均值,其中,所述像素點總數(shù)為所述像素點行數(shù)與所述像素點列數(shù)的乘積。

結(jié)合第一方面的第一種實施方式,在第一方面的第二種實施方式中,利用下式計算所述顏色平均值:

<mrow> <mi>T</mi> <mi>h</mi> <mi>i</mi> <mi>s</mi> <mi>A</mi> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>K</mi> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>l</mi> <mo>=</mo> </mrow> <mi>L</mi> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>Y</mi> <mrow> <mi>l</mi> <mi>k</mi> <mi>i</mi> </mrow> </msub> </mrow> <mrow> <mi>n</mi> <mo>*</mo> <mi>K</mi> <mo>*</mo> <mi>L</mi> </mrow> </mfrac> </mrow>

式中,

ThisA為顏色平均值;

K為文字位圖包含的像素點列數(shù);

L為文字位圖包含的像素點行數(shù);

n為組成像素點顏色的原色數(shù);

Ylki為文字位圖中的第l行k列的像素點第i原色的像素值。

結(jié)合第一方面、第一方面的第一種或第二種實施方式,在第一方面的第三種實施方式中,所述依據(jù)所述顏色平均值以及所述文字位圖的顏色當(dāng)前值,計算所述待渲染文字的顏色渲染值包括:

選取所述文字位圖中的一像素點,分別獲取選取的像素點的當(dāng)前紅顏色像素值、當(dāng)前綠顏色像素值以及當(dāng)前藍顏色像素值;

依次將所述當(dāng)前紅顏色像素值與所述顏色平均值、所述當(dāng)前綠顏色像素值與所述顏色平均值,以及,所述當(dāng)前藍顏色像素值與所述顏色平均值應(yīng)用于預(yù)先設(shè)置的顏色渲染公式,得到所述待渲染文字的相應(yīng)紅顏色像素渲染值、綠顏色像素渲染值以及藍顏色像素渲染值。

結(jié)合第一方面、第一方面的第一種或第二種實施方式,在第一方面的第四種實施方式中,利用如下公式計算所述顏色渲染值:

<mrow> <msub> <mi>ThisC</mi> <mrow> <mi>l</mi> <mi>k</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <mi>T</mi> <mi>h</mi> <mi>i</mi> <mi>s</mi> <mi>A</mi> <mo>*</mo> <msub> <mi>Y</mi> <mrow> <mi>l</mi> <mi>k</mi> <mi>i</mi> </mrow> </msub> </mrow> <mi>N</mi> </mfrac> </mrow>

式中,

ThisClki為文字位圖中的第l行k列的像素點第i原色的顏色渲染值;

N為預(yù)先設(shè)置的常數(shù)。

結(jié)合第一方面、第一方面的第一種或第二種實施方式,在第一方面的第五種實施方式中,所述方法還包括:

將渲染后的所述待渲染文字呈現(xiàn)在窗體中。

第二方面,本發(fā)明實施例提供一種渲染文字的裝置,包括:設(shè)備無關(guān)位圖創(chuàng)建模塊、顏色獲取模塊、渲染值計算模塊、透明度設(shè)置模塊以及渲染模塊,其中,

設(shè)備無關(guān)位圖創(chuàng)建模塊,用于創(chuàng)建一空白設(shè)備無關(guān)位圖,在創(chuàng)建的所述空白設(shè)備無關(guān)位圖中繪制待渲染文字,得到文字位圖;

顏色獲取模塊,用于獲取所述文字位圖的顏色平均值;

渲染值計算模塊,用于依據(jù)所述顏色平均值以及所述文字位圖的顏色當(dāng)前值,計算所述待渲染文字的顏色渲染值;

透明度設(shè)置模塊,用于依據(jù)所述顏色平均值設(shè)置所述待渲染文字的透明度;

渲染模塊,用于利用所述待渲染文字的透明度以及所述顏色渲染值,對所述待渲染文字進行渲染。

結(jié)合第二方面,在第二方面的第一種實施方式中,所述顏色獲取模塊包括:像素數(shù)獲取單元、遍歷單元以及顏色平均值計算單元,其中,

像素數(shù)獲取單元,用于獲取所述文字位圖包含的像素點行數(shù)以及像素點列數(shù);

遍歷單元,用于遍歷所述文字位圖包含的每一像素點,提取所述每一像素點的的像素值并進行累加;

顏色平均值計算單元,用于計算累加的像素值的和值與像素點總數(shù)的比值,得到所述文字位圖的顏色平均值,其中,所述像素點總數(shù)為所述像素點行數(shù)與所述像素點列數(shù)的乘積。

結(jié)合第二方面的第一種實施方式,在第二方面的第二種實施方式中,利用下式計算所述顏色平均值:

<mrow> <mi>T</mi> <mi>h</mi> <mi>i</mi> <mi>s</mi> <mi>A</mi> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>K</mi> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>l</mi> <mo>=</mo> </mrow> <mi>L</mi> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>Y</mi> <mrow> <mi>l</mi> <mi>k</mi> <mi>i</mi> </mrow> </msub> </mrow> <mrow> <mi>n</mi> <mo>*</mo> <mi>K</mi> <mo>*</mo> <mi>L</mi> </mrow> </mfrac> </mrow>

式中,

ThisA為顏色平均值;

K為文字位圖包含的像素點列數(shù);

L為文字位圖包含的像素點行數(shù);

n為組成像素點顏色的原色數(shù);

Ylki為文字位圖中的第l行k列的像素點第i原色的像素值。

結(jié)合第二方面、第二方面的第一種或第二種實施方式,在第二方面的第三種實施方式中,所述渲染值計算模塊包括:像素值獲取單元以及渲染值計算單元,其中,

像素值獲取單元,用于選取所述文字位圖中的一像素點,分別獲取選取的像素點的當(dāng)前紅顏色像素值、當(dāng)前綠顏色像素值以及當(dāng)前藍顏色像素值;

渲染值計算單元,用于依次將所述當(dāng)前紅顏色像素值與所述顏色平均值、所述當(dāng)前綠顏色像素值與所述顏色平均值,以及,所述當(dāng)前藍顏色像素值與所述顏色平均值應(yīng)用于預(yù)先設(shè)置的顏色渲染公式,得到所述待渲染文字的相應(yīng)紅顏色像素渲染值、綠顏色像素渲染值以及藍顏色像素渲染值。

結(jié)合第二方面的第四種實施方式,在第二方面的第五種實施方式中,利用如下公式計算所述顏色渲染值:

<mrow> <msub> <mi>ThisC</mi> <mrow> <mi>l</mi> <mi>k</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <mi>T</mi> <mi>h</mi> <mi>i</mi> <mi>s</mi> <mi>A</mi> <mo>*</mo> <msub> <mi>Y</mi> <mrow> <mi>l</mi> <mi>k</mi> <mi>i</mi> </mrow> </msub> </mrow> <mi>N</mi> </mfrac> </mrow>

式中,

ThisClki為文字位圖中的第l行k列的像素點第i原色的顏色渲染值;

N為預(yù)先設(shè)置的常數(shù)。

結(jié)合第二方面、第二方面的第一種或第二種實施方式,在第二方面的第六種實施方式中,所述裝置還包括:

呈現(xiàn)模塊,用于將渲染后的所述待渲染文字呈現(xiàn)在窗體中。

第三方面,本發(fā)明實施例提供一種電子設(shè)備,所述電子設(shè)備包括:殼體、處理器、存儲器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內(nèi)部,處理器和存儲器設(shè)置在電路板上;電源電路,用于為上述電子設(shè)備的各個電路或器件供電;存儲器用于存儲可執(zhí)行程序代碼;處理器通過讀取存儲器中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應(yīng)的程序,用于執(zhí)行前述任一所述的渲染文字的方法。

本發(fā)明實施例提供的一種渲染文字的方法、裝置及電子設(shè)備,通過創(chuàng)建一空白設(shè)備無關(guān)位圖,在創(chuàng)建的所述空白設(shè)備無關(guān)位圖中繪制待渲染文字,得到文字位圖;獲取所述文字位圖的顏色平均值;依據(jù)所述顏色平均值以及所述文字位圖的顏色當(dāng)前值,計算所述待渲染文字的顏色渲染值;依據(jù)所述顏色平均值設(shè)置所述待渲染文字的透明度;利用所述待渲染文字的透明度以及所述顏色渲染值,對所述待渲染文字進行渲染,能夠提升窗體中展示的文字的渲染效果,提高文字的辨認度,以解決現(xiàn)有的渲染文字的方法被渲染文字的顏色與窗體的背景顏色相同或相近似,導(dǎo)致在窗體中呈現(xiàn)的文字不易辨認,渲染效果差的問題。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。

圖1為本發(fā)明的實施例一渲染文字的方法流程示意圖;

圖2為本發(fā)明的實施例二渲染文字的方法流程示意圖;

圖3為本發(fā)明的實施例三渲染文字的裝置結(jié)構(gòu)示意圖;

圖4為本發(fā)明電子設(shè)備一個實施例的結(jié)構(gòu)示意圖。

具體實施方式

下面結(jié)合附圖對本發(fā)明實施例進行詳細描述。

應(yīng)當(dāng)明確,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。

實施例一

圖1為本發(fā)明的實施例一渲染文字的方法流程示意圖,如圖1所示,本實施例的方法可以包括:

步驟101,創(chuàng)建一空白設(shè)備無關(guān)位圖,在創(chuàng)建的所述空白設(shè)備無關(guān)位圖中繪制待渲染文字,得到文字位圖;

本實施例中,考慮到采用GDI或GDI+繪制文字,繪制的文字的顏色與設(shè)備相關(guān),例如,與呈現(xiàn)該文字的窗體的背景顏色相關(guān),使得操作系統(tǒng)在對GDI繪制的文字邊緣的顏色進行渲染后,被渲染文字的顏色可能與該文字所在窗體的背景顏色相同或相近似,導(dǎo)致在窗體中呈現(xiàn)的文字較為模糊,不易辨認。因而,本實施例中,考慮利用顏色模式與設(shè)備無關(guān)的設(shè)備無關(guān)位圖(DIB,Device Independent Bitmap)進行文字繪制,其中,DIB的顏色模式與設(shè)備無關(guān),擁有對應(yīng)的顏色表,像素的顏色獨立于設(shè)備調(diào)色板。例如,一256色的DIB,既可以在真彩色顯示模式下使用,也可以在16色模式下使用。實際應(yīng)用中,由于DIB不依賴于具體設(shè)備,可以用于永久性地保存圖象。

本實施例中,作為一可選實施例,設(shè)備無關(guān)位圖為位圖格式的圖片,例如,.bmp圖片。在.bmp圖片中,圖像由點(像素)組成,每一點或像素可由多種顏色表示,例如,點或像素對應(yīng)的顏色可以包括2、4、8、16、24和32位顏色(色彩)。

本實施例中,依據(jù)需要呈現(xiàn)的文字的格局,設(shè)置空白設(shè)備無關(guān)位圖的相應(yīng)尺寸,并在空白設(shè)備無關(guān)位圖中,調(diào)用相關(guān)函數(shù)以繪制(輸入)待渲染文字,設(shè)置待渲染文字的字體屬性,例如,字體類型、字體風(fēng)格、字體顏色以及字體尺寸,其中,

字體類型包括但不限于:宋體、仿宋體、楷體、隸書、幼圓體等。

字體風(fēng)格包括但不限于:正常、斜體、加粗、粗斜體、下劃線以及刪除線等。

字體顏色包括但不限于:紅色、黃色、藍色、橙色、黑色等。

字體尺寸用于表征文字對應(yīng)的字符高度,包括但不限于:字符高度、字符間隔、對齊方式、行間距等。

步驟102,獲取所述文字位圖的顏色平均值;

本實施例中,作為一可選實施例,所述獲取所述文字位圖的顏色平均值包括:

A11,獲取所述文字位圖包含的像素點行數(shù)以及像素點列數(shù);

本實施例中,文字位圖由像素點組成,例如,對于一1024x768的文字位圖來說,包含的像素點行數(shù)為1024行,包含的像素點列數(shù)為768列。每一像素點可以采用2、4、8、16、24或32位顏色中的一種。

A12,遍歷所述文字位圖包含的每一像素點,提取所述每一像素點的的像素值并進行累加;

本實施例中,依序讀取文字位圖中的每一像素點,在提取該像素點的像素值后,將提取的像素值與存儲的像素值相加,并用相加得到的像素值替換存儲的像素值,判斷該像素點是否為文字位圖中最后一行的最后一列像素點,如果是,結(jié)束遍歷像素點的流程;如果不是,按照先列后行的方式讀取下一像素點。

本實施例中,作為一可選實施例,像素值為三原色值,包括:紅顏色像素值(R值)、綠顏色像素值(G值)以及藍顏色像素值(B值)。

A13,計算累加的像素值的和值與像素點總數(shù)的比值,得到所述文字位圖的顏色平均值,其中,所述像素點總數(shù)為所述像素點行數(shù)與所述像素點列數(shù)的乘積。

本實施例中,顏色平均值為紅顏色平均像素值、綠顏色平均像素值以及藍顏色平均像素值的平均值。

作為一可選實施例,利用下式計算顏色平均值:

<mrow> <mi>T</mi> <mi>h</mi> <mi>i</mi> <mi>s</mi> <mi>A</mi> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>K</mi> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>l</mi> <mo>=</mo> </mrow> <mi>L</mi> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>Y</mi> <mrow> <mi>l</mi> <mi>k</mi> <mi>i</mi> </mrow> </msub> </mrow> <mrow> <mi>n</mi> <mo>*</mo> <mi>K</mi> <mo>*</mo> <mi>L</mi> </mrow> </mfrac> </mrow>

式中,

ThisA為顏色平均值;

K為文字位圖包含的像素點列數(shù);

L為文字位圖包含的像素點行數(shù);

n為組成像素點顏色的原色數(shù);

Ylki為文字位圖中的第l行k列的像素點第i原色的像素值。

本實施例中,作為一可選實施例,像素值(顏色)為三原色,則n=3。實際應(yīng)用中,可以設(shè)置i=1時,ThisAi為紅顏色平均像素值;i=2時,ThisAi為綠顏色平均像素值;i=3時,ThisAi為藍顏色平均像素值。

步驟103,依據(jù)所述顏色平均值以及所述文字位圖的顏色當(dāng)前值,計算所述待渲染文字的顏色渲染值;

本實施例中,顏色渲染值包括:紅顏色像素渲染值、綠顏色像素渲染值以及藍顏色像素渲染值,每一像素點對應(yīng)一紅顏色像素渲染值、綠顏色像素渲染值以及藍顏色像素渲染值。

作為一可選實施例,所述依據(jù)所述顏色平均值以及所述文字位圖的顏色當(dāng)前值,計算所述待渲染文字的顏色渲染值包括:

B21,選取所述文字位圖中的一像素點,分別獲取選取的像素點的當(dāng)前紅顏色像素值、當(dāng)前綠顏色像素值以及當(dāng)前藍顏色像素值;

B22,依次將所述當(dāng)前紅顏色像素值與所述顏色平均值、所述當(dāng)前綠顏色像素值與所述顏色平均值,以及,所述當(dāng)前藍顏色像素值與所述顏色平均值應(yīng)用于預(yù)先設(shè)置的顏色渲染公式,得到所述待渲染文字的相應(yīng)紅顏色像素渲染值、綠顏色像素渲染值以及藍顏色像素渲染值。

本實施例中,作為一可選實施例,利用如下顏色渲染公式計算顏色渲染值:

<mrow> <msub> <mi>ThisC</mi> <mrow> <mi>l</mi> <mi>k</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <mi>T</mi> <mi>h</mi> <mi>i</mi> <mi>s</mi> <mi>A</mi> <mo>*</mo> <msub> <mi>Y</mi> <mrow> <mi>l</mi> <mi>k</mi> <mi>i</mi> </mrow> </msub> </mrow> <mi>N</mi> </mfrac> </mrow>

式中,

ThisClki為文字位圖中的第l行k列的像素點第i原色的顏色渲染值;

N為預(yù)先設(shè)置的常數(shù)。

本實施例中,選取的像素點的當(dāng)前紅顏色像素值為Ylki,作為一可選實施例,N的取值為2的指數(shù)倍,例如,對于包含有8位顏色的像素點,可以設(shè)置N=256。

步驟104,依據(jù)所述顏色平均值設(shè)置所述待渲染文字的透明度;

本實施例中,作為一可選實施例,可以設(shè)置所述待渲染文字的透明度等于所述顏色平均值。當(dāng)然,實際應(yīng)用中,也可以設(shè)置所述待渲染文字的透明度為與所述顏色平均值相關(guān)聯(lián)的其他值,本發(fā)明實施例對此不作限定。

本實施例中,計算顏色平均值以及顏色渲染值的程序代碼段如下:

上述程序代碼段中,Y表示像素點的列坐標(biāo),X表示像素點的行坐標(biāo),BMIH.biHeight為位圖高度,即包含的像素點列數(shù),BMIH.biWidth為位圖寬度,即包含的像素點行數(shù),*DataPtr為紅顏色平均像素值,*(DataPtr+1)為綠顏色平均像素值,*(DataPtr+2)為藍顏色平均像素值,*DataPtr++=(FillB*ThisA)>>8為藍顏色像素渲染值,*DataPtr++=(FillG*ThisA)>>8為綠顏色像素渲染值,*DataPtr++=(FillR*ThisA)>>8為紅顏色像素渲染值,*DataPtr++=ThisA為所述待渲染文字的透明度。

步驟105,利用所述待渲染文字的透明度以及所述顏色渲染值,對所述待渲染文字進行渲染。

本實施例中,作為一可選實施例,可以將得到的待渲染文字的透明度以及顏色渲染值替換操作系統(tǒng)在進行文字渲染的相應(yīng)顏色值,從而對文字進行渲染;也可以是調(diào)用操作系統(tǒng)渲染文字的方法,將得到的待渲染文字的透明度以及顏色渲染值設(shè)置為操作系統(tǒng)渲染時的相應(yīng)參數(shù)值。

關(guān)于利用透明度以及顏色渲染值,對文字進行渲染為公知技術(shù),在此略去詳述。

本發(fā)明的實施例一渲染文字的方法,通過創(chuàng)建一空白設(shè)備無關(guān)位圖,在創(chuàng)建的所述空白設(shè)備無關(guān)位圖中繪制待渲染文字,得到文字位圖;獲取所述文字位圖的顏色平均值;依據(jù)所述顏色平均值以及所述文字位圖的顏色當(dāng)前值,計算所述待渲染文字的顏色渲染值;依據(jù)所述顏色平均值設(shè)置所述待渲染文字的透明度;利用所述待渲染文字的透明度以及所述顏色渲染值,對所述待渲染文字進行渲染。這樣,通過創(chuàng)建設(shè)備無關(guān)位圖的方法繪制文字,由于通過設(shè)備無關(guān)位圖繪制的文字屬性與設(shè)備無關(guān),因而,能夠控制文字中每一像素點顏色的渲染,使得不論在何種操作系統(tǒng)的窗體背景顏色下,窗體中顯示的文字都能保持一致的視覺效果,渲染效果好,避免了呈現(xiàn)的文字較為模糊,不易辨認的技術(shù)問題,文字清晰、易于用戶辨認,從而有效提升用戶體驗。尤其是對于呈現(xiàn)在透明窗體中的文字,能夠使透明窗體上的文字在不同的背景顏色下表現(xiàn)出同樣的效果,讓用戶能在不同桌面背景顏色下獲得一致的體驗。

實施例二

圖2為本發(fā)明的實施例二渲染文字的方法流程示意圖,如圖2所示,本實施例的方法可以包括:

步驟201,創(chuàng)建一空白設(shè)備無關(guān)位圖,在創(chuàng)建的所述空白設(shè)備無關(guān)位圖中繪制待渲染文字,得到文字位圖;

本實施例中,步驟201的過程分別和上述方法實施例一的步驟101類似,此處不再贅述。

步驟202,利用行程長度編碼算法對所述文字位圖進行壓縮,存儲壓縮的所述文字位圖;

本實施例中,可以將文字位圖進行存儲,以在后續(xù)需要時,可以直接從存儲區(qū)中獲取該文字位圖。作為一可選實施例,可以采用行程長度編碼(RLE,Run Length Encoding)算法壓縮文字位圖。

步驟203,獲取所述文字位圖的顏色平均值;

步驟204,依據(jù)所述顏色平均值以及所述文字位圖的顏色當(dāng)前值,計算所述待渲染文字的顏色渲染值;

步驟205,依據(jù)所述顏色平均值設(shè)置所述待渲染文字的透明度;

步驟206,利用所述待渲染文字的透明度以及所述顏色渲染值,對所述待渲染文字進行渲染;

本實施例中,步驟203至步驟206的過程分別和上述方法實施例一的步驟102至步驟105類似,此處不再贅述。

步驟207,將渲染后的所述待渲染文字呈現(xiàn)在窗體中。

本發(fā)明實施例二渲染文字的方法,在將渲染后的待渲染文字呈現(xiàn)在窗體后,呈現(xiàn)的文字在不同的背景顏色下表現(xiàn)出同樣的效果,可以使用戶獲得一致的應(yīng)用體驗。

實施例三

圖3為本發(fā)明的實施例三渲染文字的裝置結(jié)構(gòu)示意圖,如圖3所示,本實施例的裝置可以包括:設(shè)備無關(guān)位圖創(chuàng)建模塊31、顏色獲取模塊32、渲染值計算模塊33、透明度設(shè)置模塊34以及渲染模塊35,其中,

設(shè)備無關(guān)位圖創(chuàng)建模塊31,用于創(chuàng)建一空白設(shè)備無關(guān)位圖,在創(chuàng)建的所述空白設(shè)備無關(guān)位圖中繪制待渲染文字,得到文字位圖;

本實施例中,利用顏色模式與設(shè)備無關(guān)的設(shè)備無關(guān)位圖進行文字繪制。

本實施例中,依據(jù)需要呈現(xiàn)的文字的格局,設(shè)置空白設(shè)備無關(guān)位圖的相應(yīng)尺寸,并在空白設(shè)備無關(guān)位圖中,調(diào)用相關(guān)函數(shù)以繪制(輸入)待渲染文字,設(shè)置待渲染文字的字體屬性,例如,字體類型、字體風(fēng)格、字體顏色以及字體尺寸。

顏色獲取模塊32,用于獲取所述文字位圖的顏色平均值;

本實施例中,作為一可選實施例,顏色獲取模塊32包括:像素數(shù)獲取單元、遍歷單元以及顏色平均值計算單元(圖中未示出),其中,

像素數(shù)獲取單元,用于獲取所述文字位圖包含的像素點行數(shù)以及像素點列數(shù);

本實施例中,文字位圖由像素點組成。

本實施例中,作為一可選實施例,像素值為三原色值,包括:紅顏色像素值(R值)、綠顏色像素值(G值)以及藍顏色像素值(B值)。

遍歷單元,用于遍歷所述文字位圖包含的每一像素點,提取所述每一像素點的的像素值并進行累加;

顏色平均值計算單元,用于計算累加的像素值的和值與像素點總數(shù)的比值,得到所述文字位圖的顏色平均值,其中,所述像素點總數(shù)為所述像素點行數(shù)與所述像素點列數(shù)的乘積。

本實施例中,顏色平均值包括:紅顏色平均像素值、綠顏色平均像素值以及藍顏色平均像素值的平均值。

本發(fā)明實施例中,作為一可選實施例,利用下式計算所述顏色平均值:

<mrow> <mi>T</mi> <mi>h</mi> <mi>i</mi> <mi>s</mi> <mi>A</mi> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>K</mi> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>l</mi> <mo>=</mo> </mrow> <mi>L</mi> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>Y</mi> <mrow> <mi>l</mi> <mi>k</mi> <mi>i</mi> </mrow> </msub> </mrow> <mrow> <mi>n</mi> <mo>*</mo> <mi>K</mi> <mo>*</mo> <mi>L</mi> </mrow> </mfrac> </mrow>

式中,

ThisA為顏色平均值;

K為文字位圖包含的像素點列數(shù);

L為文字位圖包含的像素點行數(shù);

n為組成像素點顏色的原色數(shù);

Ylki為文字位圖中的第l行k列的像素點第i原色的像素值。

渲染值計算模塊33,用于依據(jù)所述顏色平均值以及所述文字位圖的顏色當(dāng)前值,計算所述待渲染文字的顏色渲染值;

本實施例中,顏色渲染值包括:紅顏色像素渲染值、綠顏色像素渲染值以及藍顏色像素渲染值,每一像素點對應(yīng)一紅顏色像素渲染值、綠顏色像素渲染值以及藍顏色像素渲染值。

本實施例中,作為一可選實施例,渲染值計算模塊33包括:像素值獲取單元以及渲染值計算單元(圖中未示出),其中,

像素值獲取單元,用于選取所述文字位圖中的一像素點,分別獲取選取的像素點的當(dāng)前紅顏色像素值、當(dāng)前綠顏色像素值以及當(dāng)前藍顏色像素值;

渲染值計算單元,用于依次將所述當(dāng)前紅顏色像素值與所述顏色平均值、所述當(dāng)前綠顏色像素值與所述顏色平均值,以及,所述當(dāng)前藍顏色像素值與所述顏色平均值應(yīng)用于預(yù)先設(shè)置的顏色渲染公式,得到所述待渲染文字的相應(yīng)紅顏色像素渲染值、綠顏色像素渲染值以及藍顏色像素渲染值。

本實施例中,作為一可選實施例,利用如下公式計算所述顏色渲染值:

<mrow> <msub> <mi>ThisC</mi> <mrow> <mi>l</mi> <mi>k</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <mi>T</mi> <mi>h</mi> <mi>i</mi> <mi>s</mi> <mi>A</mi> <mo>*</mo> <msub> <mi>Y</mi> <mrow> <mi>l</mi> <mi>k</mi> <mi>i</mi> </mrow> </msub> </mrow> <mi>N</mi> </mfrac> </mrow>

式中,

ThisClki為文字位圖中的第l行k列的像素點第i原色的顏色渲染值;

N為預(yù)先設(shè)置的常數(shù)。

透明度設(shè)置模塊34,用于依據(jù)所述顏色平均值設(shè)置所述待渲染文字的透明度;

本實施例中,作為一可選實施例,可以設(shè)置所述待渲染文字的透明度等于所述顏色平均值。當(dāng)然,實際應(yīng)用中,也可以設(shè)置所述待渲染文字的透明度為與所述顏色平均值相關(guān)聯(lián)的其他值。

渲染模塊35,用于利用所述待渲染文字的透明度以及所述顏色渲染值,對所述待渲染文字進行渲染。

本實施例中,作為一可選實施例,可以將得到的待渲染文字的透明度以及顏色渲染值替換操作系統(tǒng)在進行文字渲染的相應(yīng)顏色值,從而對文字進行渲染;也可以是調(diào)用操作系統(tǒng)渲染文字的方法,將得到的待渲染文字的透明度以及顏色渲染值設(shè)置為操作系統(tǒng)渲染時的相應(yīng)參數(shù)值。

本實施例中,作為一可選實施例,該裝置還包括:

呈現(xiàn)模塊36,用于將渲染后的所述待渲染文字呈現(xiàn)在窗體中。

本實施例中,作為再一可選實施例,該裝置還包括:

壓縮模塊37,用于利用行程長度編碼算法對所述文字位圖進行壓縮,存儲壓縮的所述文字位圖。

本實施例的裝置,可以用于執(zhí)行圖1和圖2所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。

需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。

本說明書中的各個實施例均采用相關(guān)的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。

尤其,對于裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。

在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認為是用于實現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實現(xiàn)在任何計算機可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計算機的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說明書而言,″計算機可讀介質(zhì)″可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。計算機可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個或多個布線的電連接部(電子裝置),便攜式計算機盤盒(磁裝置),隨機存取存儲器(RAM),只讀存儲器(ROM),可擦除可編輯只讀存儲器(EPROM或閃速存儲器),光纖裝置,以及便攜式光盤只讀存儲器(CDROM)。另外,計算機可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因為可以例如通過對紙或其他介質(zhì)進行光學(xué)掃描,接著進行編輯、解譯或必要時以其他合適方式進行處理來以電子方式獲得所述程序,然后將其存儲在計算機存儲器中。

應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。

在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。

本發(fā)明實施例還提供一種電子設(shè)備,所述電子設(shè)備包含前述任一實施例所述的裝置。

圖4為本發(fā)明電子設(shè)備一個實施例的結(jié)構(gòu)示意圖,可以實現(xiàn)本發(fā)明圖1-3所示實施例的流程,如圖4所示,上述電子設(shè)備可以包括:殼體41、處理器42、存儲器43、電路板44和電源電路45,其中,電路板44安置在殼體41圍成的空間內(nèi)部,處理器42和存儲器43設(shè)置在電路板44上;電源電路45,用于為上述電子設(shè)備的各個電路或器件供電;存儲器43用于存儲可執(zhí)行程序代碼;處理器42通過讀取存儲器43中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應(yīng)的程序,用于執(zhí)行前述任一實施例所述的渲染文字的方法。

處理器42對上述步驟的具體執(zhí)行過程以及處理器42通過運行可執(zhí)行程序代碼來進一步執(zhí)行的步驟,可以參見本發(fā)明圖1-3所示實施例的描述,在此不再贅述。

該電子設(shè)備以多種形式存在,包括但不限于:

(1)移動通信設(shè)備:這類設(shè)備的特點是具備移動通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標(biāo)。這類終端包括:智能手機(例如iPhone)、多媒體手機、功能性手機,以及低端手機等。

(2)超移動個人計算機設(shè)備:這類設(shè)備屬于個人計算機的范疇,有計算和處理功能,一般也具備移動上網(wǎng)特性。這類終端包括:PDA、MID和UMPC設(shè)備等,例如iPad。

(3)便攜式娛樂設(shè)備:這類設(shè)備可以顯示和播放多媒體內(nèi)容。該類設(shè)備包括:音頻、視頻播放器(例如iPod),掌上游戲機,電子書,以及智能玩具和便攜式車載導(dǎo)航設(shè)備。

(4)服務(wù)器:提供計算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,服務(wù)器和通用的計算機架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。

(5)其他具有數(shù)據(jù)交互功能的電子設(shè)備。

本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。

為了描述的方便,描述以上裝置是以功能分為各種單元/模塊分別描述。當(dāng)然,在實施本發(fā)明時可以把各單元/模塊的功能在同一個或多個軟件和/或硬件中實現(xiàn)。

通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本

發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。

以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以權(quán)利要求的保護范圍為準(zhǔn)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
铜梁县| 汾阳市| 丰镇市| 阳谷县| 剑阁县| 南通市| 秭归县| 会理县| 东方市| 宜章县| 花垣县| 高阳县| 廊坊市| 万载县| 明光市| 娄底市| 嘉兴市| 高邑县| 喀什市| 张北县| 海城市| 岗巴县| 溧水县| 四川省| 开江县| 达尔| 长子县| 安平县| 扎兰屯市| 汶川县| 大理市| 陆河县| 苏尼特左旗| 宁德市| 徐汇区| 融水| 辽阳县| 闸北区| 隆尧县| 壶关县| 秭归县|