在信息技術飛速發展的今天,新鮮事物如雨后春筍一般涌現,科技的進步推進了人類社會的進步。SDL庫在科技中的應用是飛躍的進步,在實際的使用過程中,應用好各種科學技術的有效結合可以最大限度的發揮功能,造福人類。本文就基于SDL庫的嵌入式平臺中文顯示技術做以研究介紹,主要包括對SDL的介紹、中文顯示技術依托于其他技術的實現途徑等。
【關鍵詞】SDL庫 中文顯示技術 嵌入式平臺
科技產品在我們日常生活中的應用已經很普遍了,我們用的手機、電腦、電視機都是科學技術進步的產物,但是科技不僅僅停留于此,人們對于技術使用的要求也是越來越高了,正是由于使用的不滿足和高要求,才使得技術的應用可以逐漸的完善。目前,嵌入式系統的文字庫還是以點陣字為主,隨著技術應用的廣泛性在增大,處理器的運輸能力也在增強,逐漸出現了GUI系統。當前的點陣字雖然在處理速度上很占優勢,但是在分辨率的顯示方面卻存在很大的缺陷,高精度的中文顯示又存在顯示速度慢這樣的問題,目前就是這樣的狀況。在國內,目前SDL應用的主要領域是游戲的編寫和數據開發等,并未致力于中文顯示的研究,由于嵌入式平臺和SDL庫系統應用之間有很大的差別,所以這樣的應用對于研究開發人員的要求也是很高的,所以,可以采取在SDL圖形庫顯示中文,可以在很大程度上避免一些問題的出現,克服一些障礙,SDL圖形庫接口的傳輸速度相對較快,結構相對簡單,并且可移植性強等優先,可以改善嵌入式系統中SDL庫文字的顯示。
1 SDL的概述
SDL是一個用C語言編寫的免費跨平臺多媒體開發庫,使用LGPL許可證,可以應用于游戲、游戲開發工具、數據模擬器、樣本演示、多媒體應用等。其顯著之處在于跨平臺操作、易使用。到目前為止,SDL的版本支持Linux、Windows等多種操作系統,但是不完全依賴于系統。SDL最大的特點就是跨平臺,在平臺之間進行一系列的操作,而不是僅僅依靠一個平臺的內部操作,很大程度上減少了對操作系統的依賴,更加獨立,更加便捷,依賴的系統少,我們都知道,受到各種系統的限制就會減少很多,進而操作起來更容易,使用更方便。而且,SDL利用C語言編寫,原本C語言的風格濃郁,所以SDL編寫的程序簡單容易被理解、系統啟動的速度較快、編寫程序很靈活、修改程序方便簡單,而且封裝性良好,這個都是SDL在利用C語言編寫的基礎上而存在的主要優勢。
2 利用SDL顯示GBK點陣漢字
2.1 基本原理
GBK是一個漢字編碼標準,在使用的時候,需要GBK點陣文字字庫文件,是一種操作比較復雜的文件,為了簡化在實際使用過程中的操作,將這種文件轉化為數組,在這個轉化的過程中,轉化的是文字的形式,但是文字額本身并不受影響。然后在實際應用中,就可以把這樣轉化后的文字直接放在應用內存中用于顯示,因為是經過了轉化的,所以占據的空間比較大,容量大,可見這樣的調整對于移動設備來說是不利的,不適用在移動設備中,這種程序在編寫和使用時,直接調用這樣轉化后存儲的文件,檢索出所需要的資料。
2.2 點陣漢字的顯示
(1)如果是單個漢字的讀取,則會讀取偏移量后的32 個字節,經過系統的映射和轉化,變為可以識別的、分辨率超高的漢字;如果是ASCII編碼的,則只需要讀取16字節,就可以準確利用程序顯示出點陣漢字。
(2)對于所讀取的任何字節,啥要確定該字每位的字節值,如果是“1”,則會在內存對于的位置顯示出來,如果不是的話就不會顯是出來點陣。
(3)還有一種情況是,前提是漢字,但卻不是GB點陣的漢字范圍,則需要重新計算,根據漢字內碼在GBK擴展碼的范圍進行測算,計算出漢字的偏移量,然后根據偏移量來進行漢字的顯示。
3 利用SDL顯示Ture Type字體
Ture Type字體利用的是數學的有關知識,利用數學函數的關系來顯示漢字的外形輪廓,用函數的方式表達出漢字的外形, 每個漢字的函數曲線都是不一樣的。利用這種方式,可以準確的漢字的外形,進而準確的識別出不同的漢字;而且,函數的知識是一種先進的技術應用,可以支持字體的嵌入;而且,這種方式的兼容度很高,可以避免由于操作系統的兼容性低而造成使用不便的問題。
利用SDL顯示Ture Type字體,就要求必須使用.ttf文件,才可以進行相應的支持。Ture Type字體的顯示,首先要經過TTF初始化,打開有關的程序和文件,進而打開文字的字體,對字體的屬性進行設置,包括文字的大小、字體等各種屬性,以達到.ttf文件的要求,才可以進行正常的文字轉化和識別,隨后將有關文字放在內存中,移動文字存儲的位置和方式,以備用顯示;然后再把存儲著文字的內存拷貝到可以顯示文字的設備上,保證文字有一定的載體,然后釋放內存,保證文字文件已經存儲在顯示設備中;最后釋放內存,刷新存儲文字的顯示設備環境,為顯示文字清理環境,是文字順利的顯示出來;在完成之后,就可以關閉字體的文件了,然后清楚并銷毀TTF。本段上問敘述的就是TTF文字顯示的大致的過程。其實是一個文字的形式的轉換,并且字體的存貯載體的一個轉移過程。該過程不會改變文字的各種屬性,知識將文字進行了一次“搬運”。
4 總結
上文介紹了基于SDL庫嵌入式平臺中文顯示的的幾種依托于其他系統或者是轉化系統的方式,拓寬的研究的事業,將多種先進的技術做有效的結合,從而形成新型的??梢源蠓鹊臐M足人們生活需要的技術支持。到目前為止,這些技術不僅僅是設想和理論的研究,有的已經應用到實踐,像利用SDL顯示GBK點陣漢字的方法已經應用到實驗室的GPS導航儀中,而且使用的效果也是很好的。我們期待著新技術給我們的日常生活帶來更多的便利,使我們的生活在科技的籠罩下更加美好。同時,我們也要盡自己最大的努力,做出有益于我們生活的事情。
參考文獻
[1]李科,李璐,蘭時勇.基于FFmpeg和SDL實現多路實時流變換及播放[J].計算機技術與發展,2014(04):65-68.
[2]江俊杰,王志明.基于SDL的H.264流媒體播放系統[J].計算機系統應用,2013(12):51-54.
[3]陳飛,黃海明,楊猛,劉金剛.基于SDL和OpenGL實時繪制中文字體[J].計算機工程與設計,2011(08):2764-2767+2783.
[4]王園園,高明煜,曾毓.基于SDL庫的嵌入式平臺中文顯示技術研究[J].計算機系統應用,2009(04):194-197.
[5]劉宇紅,白偉.SDL語言及其在通信系統中的應用[J].通信技術,2002(12):82-83.
作者簡介
楊益平(1982-),男,安徽省池州市人。碩士學歷。中國船舶重工集團公司第七二三研究所工程師。主要研究方向為人機交互技術。
許坤(1972-),男,江蘇省泰州市人。大學本科學歷。中國船舶重工集團公司第七二三研究所高級工程師。主要研究方向為計算機仿真技術。
作者單位
中國船舶重工集團公司第七二三研究所 江蘇省揚州市 225001