--- /dev/null
+from struct import *
+
+
+def bin_create(*args):
+ if len(args) < 1:
+ print("wrong params number!")
+ return -1
+ # bin header :one byte for font_num, font_num bytes for bin_size
+ # 大端1,小端2
+ # endian = input("输入大小端:")
+ with open("ext_font.bin","wb") as dest_file:
+ # start
+ start = "s"
+ end = "e"
+
+ font_num = len(args)
+ bin_data = []
+ bin_size = []
+ font_name = ""
+
+ for i in range(font_num):
+ with open(args[i], "rb") as bin_file:
+ data = bin_file.read()
+ padding = "\0" * (128 - len(args[i]))
+ string_padded = args[i] + padding
+ font_name += string_padded
+ bin_size.append(len(data))
+ bin_data.append(data)
+
+ # # 大端
+ # if endian == "1":
+ # write_data = pack(">B%ds%dI"% (font_num*128, font_num), font_num, font_name.encode(), *bin_size)
+ # # 小端
+ # else:
+ write_data = pack("<B%ds%dI"% (font_num*128, font_num), font_num, font_name.encode(), *bin_size)
+
+ dest_file.write(start.encode())
+ dest_file.write(write_data)
+ for i in range(font_num):
+ dest_file.write(bin_data[i])
+ dest_file.write(end.encode())
+
+
+if __name__ == "__main__":
+#font_28.bin:全字体,SimSun.ttf ,大小28 ,抗锯齿4
+#font_40.bin:单英文,HarmonyOS_Sans_SC_Regular.ttf ,大小40 ,抗锯齿4
+ bin_create("font_28.bin","font_40.bin")
+ # bin_create("1.bin")
\ No newline at end of file