GuiTool是一款轉換點陣字庫的軟件,非常靈巧,掌握其設置選項,将事半功倍,特别是存儲格式和編碼方式。如下圖示:
一、存儲格式
存儲格式主要分2種:Height Fixed, Not Fixed;
1、Height Fixed
Height Fixed 表示等高模式,字符等高,且周邊補白邊。适用于一個編碼對應一個字符,且逐個順序顯示。
2、Not Fixed
Not Fixed 表示BBX模式,寬高不固定,隻記錄有效區域像素信息。适用于各種不同場景,包含字符疊加,内嵌等。
其二者差異化主要表現為:文件頭、點陣信息,繪點,特效處理等等。
說明:後續涉及的文件頭、點陣信息,皆與軟件預設的存儲格式相關。
二、編碼方式
編碼方式主要分3種:内碼(MBCS),Unicode, 精簡Unicode。
1、内碼
按内碼的編碼順序存放字庫。
它又分2種情況:CJK方塊字、拉丁文。暫不支持 Not Fixed。
1.1、CJK
針對CJK(中日韓)方塊字符,采取強制等寬等高處理,可以省去檢索表,提高檢索效率;計算一個字符點陣數據大小公式:(w * bpp 7)/8 * h。
例如:單色(1bpp),24點陣,則所有字符寬(w)、高(h)皆為24,則一個字符點陣數據大小為:( 24 * 1 7)/8 * 24 =72。
數據:文件頭 等寬等高點陣數據(字符數*單字符點陣數據大小)
檢索:直接通過編碼、字符寬高,即可通過公式計算定位點陣信息。
适應場景:内碼,等寬字庫。
1.2、拉丁文
拉丁文,不等寬,需要檢索表,但由于編碼少且規則,檢索也非常高效便捷。
數據:文件頭 檢索表(256*4Byte) 點陣數據
檢索:通過編碼快速定位檢索信息,然後通過檢索信息定位點陣信息。
适應場景:内碼,編碼範圍:0x00~0xFF。
2、Unicode
按Unicode的編碼順序存放字庫。
數據:文件頭 段信息 檢索表 點陣數據
說明:段信息記錄字符分段信息,盡可能優化檢索表空間。
檢索:先通過編碼定位編碼段,然後計算在編碼段中的位置定位檢索信息,再通過檢索信息定位點陣信息。
适應場景:字符多,連續字符。
3、精簡Unicode
按Unicode的編碼順序存放字庫。
數據:文件頭 編碼表 檢索表 點陣數據
說明:編碼表記錄有效字符的所有編碼,升序排列。
檢索:通過查找編碼在編碼列表中的位置來定位檢索信息,再通過檢索信息定位點陣信息。
适應場景:字符少,非連續字符。
三、圖文分析
注:由于字符數相同,都是7480個字符,故三個bdf文件大小相同,皆為1458KB,但是bin格式存儲方式不一,大小存偏差。
1、存儲空間
補充說明:unicode 和 精簡unicode 的空間差異,由于檢索方式不同,導緻檢索表大小不同。換一句話說:精簡unicode針對不連續編碼,且字符少時,極緻地優化了檢索表空間,同時也會(稍微)降低檢索效率。
2、檢索效率
補充說明:由于檢索方式不同,故檢索效率存差異。效率值越小,表示效率越高。
3、繪點效率
補充說明: 效率值越小,表示效率越高。
四、彙總比較
1、存儲格式
2、編碼方式
總結:
a、選擇怎樣的存儲格式,什麼樣的編碼方式,具體還請視實際情況而定。
b、推薦組合:unicode not fixed,适應廣,便于後期擴展。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!