<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > VxWorks5.5 平臺下矢量字體顯示的實(shí)現

VxWorks5.5 平臺下矢量字體顯示的實(shí)現

作者: 時(shí)間:2012-09-07 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/148448.htm

  WindML 分雙字節和單字節兩種方式,雙字節顯示是兩個(gè)字節作為編碼對字庫進(jìn)行查詢(xún),找到字符位圖并顯示;單字節顯示是單個(gè)字節作為編碼對字庫進(jìn)行查詢(xún),找到字符位圖并顯示。當英文字符顯示時(shí),可以使用單字節顯示或雙字節顯示,當中文字符顯示或中英文混合字符顯示時(shí)必須使用雙字節顯示。

  VxWorks 下字體采用GB2312 編碼,中文字符編碼的每個(gè)字節都大于0x80,英文字符編碼都小于0x80,在進(jìn)行雙字節顯示時(shí),需要將單字節字符轉換成雙字節字符。在字符轉換時(shí),先獲取整個(gè)字符串長(cháng)度,再判斷每個(gè)字節是否大于0x80,如果小于0x80,則將單字節擴展成雙字節;如果大于0x80,則將這個(gè)字節與后個(gè)字節組合成一個(gè)雙字節;計算雙字節數并返回,如上圖2 所示。

圖2 單字節字符轉換成雙字節字符。

圖2 單字節字符轉換成雙字節字符。

  3.3 字體編碼轉換

   下漢字采用GB2312 編碼, 而FreeType 在處理漢字時(shí)只能識別UNICode 編碼,在處理漢字前需要將GB2312 編碼先轉換成Unicode 編碼,GB2312 與Unicode 的編碼轉換表采用二維數組保存數據,共有7000 多組對應項,如果采用遍歷數組的方式來(lái)進(jìn)行編碼轉換,那么平均每個(gè)漢字編碼轉換需要做3000 多次的編碼比較,這非常影響漢字的處理速度。

  為了提高編碼轉換的處理速度,編碼轉換時(shí)采用折半查找方式來(lái),使用折半查找需要先將GB2312編碼從小到大排列,每個(gè)GB2312 編碼對應一個(gè)Unicode 編碼。在使用折半查找時(shí),先取first=0 end=數組長(cháng)度,然后(first+end)/2 得到一個(gè)中間編號,再通過(guò)中間編號獲取相應的GB2312 編碼和顯示漢字編碼比較大小,如果中間值大,則將first=0 end=中間編碼組合再進(jìn)行折半查找;如果中間值小,則將first=中間編碼 end=數組長(cháng)度 組合再進(jìn)行折半查找;如果相等,則將GB2312 編碼對應的Unicode 編碼提交程序處理。

  使用折半查找一個(gè)漢字最多只需查找13 次,大大提高了漢字Unicode 編碼的查找速度,加速了漢字顯示。

矢量控制相關(guān)文章:矢量控制原理

上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>