4.2inch e-Paper HAT (C) made by WAVESHARE

Dependents:   ePD_4R2inch_test_program_on_nRF52

Committer:
kenjiArai
Date:
Wed Aug 28 23:35:01 2019 +0000
Revision:
1:b1aa1d6a96bc
for 4.2inch e-Paper

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 1:b1aa1d6a96bc 1 """
kenjiArai 1:b1aa1d6a96bc 2 /*
kenjiArai 1:b1aa1d6a96bc 3 * Font converter
kenjiArai 1:b1aa1d6a96bc 4 *
kenjiArai 1:b1aa1d6a96bc 5 * Copyright (c) 2018 Kenji Arai / JH1PJL
kenjiArai 1:b1aa1d6a96bc 6 * http://www.page.sannet.ne.jp/kenjia/index.html
kenjiArai 1:b1aa1d6a96bc 7 * https://os.mbed.com/users/kenjiArai/
kenjiArai 1:b1aa1d6a96bc 8 * Created: May 4th, 2018
kenjiArai 1:b1aa1d6a96bc 9 * Revised: May 14th, 2018
kenjiArai 1:b1aa1d6a96bc 10 */
kenjiArai 1:b1aa1d6a96bc 11 """
kenjiArai 1:b1aa1d6a96bc 12 import numpy as np
kenjiArai 1:b1aa1d6a96bc 13 import datetime
kenjiArai 1:b1aa1d6a96bc 14 import os
kenjiArai 1:b1aa1d6a96bc 15
kenjiArai 1:b1aa1d6a96bc 16
kenjiArai 1:b1aa1d6a96bc 17 ## -------- USER MODIFICATION ARE ------------------------------------
kenjiArai 1:b1aa1d6a96bc 18 # modify your condition below
kenjiArai 1:b1aa1d6a96bc 19 font_num = 8
kenjiArai 1:b1aa1d6a96bc 20
kenjiArai 1:b1aa1d6a96bc 21 if font_num==0:
kenjiArai 1:b1aa1d6a96bc 22 file_name = "IPAexGothicB13x14"
kenjiArai 1:b1aa1d6a96bc 23 width_bit = 13
kenjiArai 1:b1aa1d6a96bc 24 height_bit = 14
kenjiArai 1:b1aa1d6a96bc 25 org_bit_x = 13
kenjiArai 1:b1aa1d6a96bc 26 org_byte_x = 2
kenjiArai 1:b1aa1d6a96bc 27 new_byte_x = 2
kenjiArai 1:b1aa1d6a96bc 28 new_bit_y = 16
kenjiArai 1:b1aa1d6a96bc 29 elif font_num==1:
kenjiArai 1:b1aa1d6a96bc 30 file_name = "IPAexGothicB16x16"
kenjiArai 1:b1aa1d6a96bc 31 width_bit = 16
kenjiArai 1:b1aa1d6a96bc 32 height_bit = 16
kenjiArai 1:b1aa1d6a96bc 33 org_bit_x = 16
kenjiArai 1:b1aa1d6a96bc 34 org_byte_x = 2
kenjiArai 1:b1aa1d6a96bc 35 new_byte_x = 2
kenjiArai 1:b1aa1d6a96bc 36 new_bit_y = 16
kenjiArai 1:b1aa1d6a96bc 37 elif font_num==2:
kenjiArai 1:b1aa1d6a96bc 38 file_name = "IPAexGothicB21x21"
kenjiArai 1:b1aa1d6a96bc 39 width_bit = 21
kenjiArai 1:b1aa1d6a96bc 40 height_bit = 21
kenjiArai 1:b1aa1d6a96bc 41 org_bit_x = 21
kenjiArai 1:b1aa1d6a96bc 42 org_byte_x = 3
kenjiArai 1:b1aa1d6a96bc 43 new_byte_x = 3
kenjiArai 1:b1aa1d6a96bc 44 new_bit_y = 24
kenjiArai 1:b1aa1d6a96bc 45 elif font_num==3:
kenjiArai 1:b1aa1d6a96bc 46 file_name = "IPAexGothicB24x24"
kenjiArai 1:b1aa1d6a96bc 47 width_bit = 24
kenjiArai 1:b1aa1d6a96bc 48 height_bit = 24
kenjiArai 1:b1aa1d6a96bc 49 org_bit_x = 24
kenjiArai 1:b1aa1d6a96bc 50 org_byte_x = 3
kenjiArai 1:b1aa1d6a96bc 51 new_byte_x = 3
kenjiArai 1:b1aa1d6a96bc 52 new_bit_y = 24
kenjiArai 1:b1aa1d6a96bc 53 elif font_num==4:
kenjiArai 1:b1aa1d6a96bc 54 file_name = "IPAexGothicB28x29"
kenjiArai 1:b1aa1d6a96bc 55 width_bit = 28
kenjiArai 1:b1aa1d6a96bc 56 height_bit = 29
kenjiArai 1:b1aa1d6a96bc 57 org_bit_x = 28
kenjiArai 1:b1aa1d6a96bc 58 org_byte_x = 4
kenjiArai 1:b1aa1d6a96bc 59 new_byte_x = 4
kenjiArai 1:b1aa1d6a96bc 60 new_bit_y = 32
kenjiArai 1:b1aa1d6a96bc 61 elif font_num==5:
kenjiArai 1:b1aa1d6a96bc 62 file_name = "IPAexGothicB33x35"
kenjiArai 1:b1aa1d6a96bc 63 width_bit = 33
kenjiArai 1:b1aa1d6a96bc 64 height_bit = 35
kenjiArai 1:b1aa1d6a96bc 65 org_bit_x = 33
kenjiArai 1:b1aa1d6a96bc 66 org_byte_x = 5
kenjiArai 1:b1aa1d6a96bc 67 new_byte_x = 5
kenjiArai 1:b1aa1d6a96bc 68 new_bit_y = 40
kenjiArai 1:b1aa1d6a96bc 69 elif font_num==6:
kenjiArai 1:b1aa1d6a96bc 70 file_name = "IPAexGothicB38x40"
kenjiArai 1:b1aa1d6a96bc 71 width_bit = 38
kenjiArai 1:b1aa1d6a96bc 72 height_bit = 40
kenjiArai 1:b1aa1d6a96bc 73 org_bit_x = 38
kenjiArai 1:b1aa1d6a96bc 74 org_byte_x = 5
kenjiArai 1:b1aa1d6a96bc 75 new_byte_x = 5
kenjiArai 1:b1aa1d6a96bc 76 new_bit_y = 40
kenjiArai 1:b1aa1d6a96bc 77 elif font_num==7:
kenjiArai 1:b1aa1d6a96bc 78 file_name = "IPAexGothicB48x48"
kenjiArai 1:b1aa1d6a96bc 79 width_bit = 48
kenjiArai 1:b1aa1d6a96bc 80 height_bit = 48
kenjiArai 1:b1aa1d6a96bc 81 org_bit_x = 48
kenjiArai 1:b1aa1d6a96bc 82 org_byte_x = 6
kenjiArai 1:b1aa1d6a96bc 83 new_byte_x = 6
kenjiArai 1:b1aa1d6a96bc 84 new_bit_y = 48
kenjiArai 1:b1aa1d6a96bc 85 elif font_num==8:
kenjiArai 1:b1aa1d6a96bc 86 file_name = "IPAexGothicB96x96"
kenjiArai 1:b1aa1d6a96bc 87 width_bit = 96
kenjiArai 1:b1aa1d6a96bc 88 height_bit = 96
kenjiArai 1:b1aa1d6a96bc 89 org_bit_x = 96
kenjiArai 1:b1aa1d6a96bc 90 org_byte_x = 12
kenjiArai 1:b1aa1d6a96bc 91 new_byte_x = 12
kenjiArai 1:b1aa1d6a96bc 92 new_bit_y = 96
kenjiArai 1:b1aa1d6a96bc 93
kenjiArai 1:b1aa1d6a96bc 94
kenjiArai 1:b1aa1d6a96bc 95 ## ----- YOU DON'T NEED ANY MODIFICATION FROM HERE TO END ----------
kenjiArai 1:b1aa1d6a96bc 96 src_file_name = file_name + ".txt"
kenjiArai 1:b1aa1d6a96bc 97 out_file_name = file_name + "_converted.txt"
kenjiArai 1:b1aa1d6a96bc 98 #wxh_name = str(width_bit) + str(height_bit)
kenjiArai 1:b1aa1d6a96bc 99 wh_name = str(width_bit) + str(height_bit)
kenjiArai 1:b1aa1d6a96bc 100 output_font_file_name = "Font" + wh_name + ".c"
kenjiArai 1:b1aa1d6a96bc 101 now = datetime.datetime.now()
kenjiArai 1:b1aa1d6a96bc 102 print(src_file_name)
kenjiArai 1:b1aa1d6a96bc 103 print(out_file_name)
kenjiArai 1:b1aa1d6a96bc 104 print(output_font_file_name)
kenjiArai 1:b1aa1d6a96bc 105 print(now)
kenjiArai 1:b1aa1d6a96bc 106
kenjiArai 1:b1aa1d6a96bc 107 ## Step 1 ------- Read Font file -------------------------------------
kenjiArai 1:b1aa1d6a96bc 108 ## step11 -> only get num & length
kenjiArai 1:b1aa1d6a96bc 109 print("###### Read a file into Array ######");
kenjiArai 1:b1aa1d6a96bc 110 file = open(src_file_name,'r')
kenjiArai 1:b1aa1d6a96bc 111 string = file.readline()
kenjiArai 1:b1aa1d6a96bc 112 while string:
kenjiArai 1:b1aa1d6a96bc 113 #print(string)
kenjiArai 1:b1aa1d6a96bc 114 string = file.readline()
kenjiArai 1:b1aa1d6a96bc 115 if string.find('{') != -1:
kenjiArai 1:b1aa1d6a96bc 116 break
kenjiArai 1:b1aa1d6a96bc 117 num=0
kenjiArai 1:b1aa1d6a96bc 118 while string:
kenjiArai 1:b1aa1d6a96bc 119 string = file.readline()
kenjiArai 1:b1aa1d6a96bc 120 #print(string)
kenjiArai 1:b1aa1d6a96bc 121 if string.find('}') != -1:
kenjiArai 1:b1aa1d6a96bc 122 break
kenjiArai 1:b1aa1d6a96bc 123 font_data = string.split()
kenjiArai 1:b1aa1d6a96bc 124 font_data.pop(0)
kenjiArai 1:b1aa1d6a96bc 125 font_data.remove('//')
kenjiArai 1:b1aa1d6a96bc 126 font_data.remove('Code')
kenjiArai 1:b1aa1d6a96bc 127 font_data.remove('for')
kenjiArai 1:b1aa1d6a96bc 128 font_data.remove('char')
kenjiArai 1:b1aa1d6a96bc 129 last = font_data.pop()
kenjiArai 1:b1aa1d6a96bc 130 if last == '0x00,':
kenjiArai 1:b1aa1d6a96bc 131 font_data.append('0x00,')
kenjiArai 1:b1aa1d6a96bc 132 length = len(font_data)
kenjiArai 1:b1aa1d6a96bc 133 num = num+1
kenjiArai 1:b1aa1d6a96bc 134 print("num=", num, "length=", length)
kenjiArai 1:b1aa1d6a96bc 135 file.close()
kenjiArai 1:b1aa1d6a96bc 136 # step12 -> Data into array
kenjiArai 1:b1aa1d6a96bc 137 temp_data=np.zeros((num,length))
kenjiArai 1:b1aa1d6a96bc 138 temp_comment=np.chararray((num,2),itemsize=20)
kenjiArai 1:b1aa1d6a96bc 139 file = open(src_file_name,'r')
kenjiArai 1:b1aa1d6a96bc 140 string = file.readline()
kenjiArai 1:b1aa1d6a96bc 141 while string:
kenjiArai 1:b1aa1d6a96bc 142 #print(string)
kenjiArai 1:b1aa1d6a96bc 143 string = file.readline()
kenjiArai 1:b1aa1d6a96bc 144 if string.find('{') != -1:
kenjiArai 1:b1aa1d6a96bc 145 break
kenjiArai 1:b1aa1d6a96bc 146 num=0
kenjiArai 1:b1aa1d6a96bc 147 length=0
kenjiArai 1:b1aa1d6a96bc 148 while string:
kenjiArai 1:b1aa1d6a96bc 149 string = file.readline()
kenjiArai 1:b1aa1d6a96bc 150 #print(string)
kenjiArai 1:b1aa1d6a96bc 151 if string.find('}') != -1:
kenjiArai 1:b1aa1d6a96bc 152 break
kenjiArai 1:b1aa1d6a96bc 153 font_data = string.split()
kenjiArai 1:b1aa1d6a96bc 154 temp_comment[num][0]=font_data.pop(0)
kenjiArai 1:b1aa1d6a96bc 155 font_data.remove('//')
kenjiArai 1:b1aa1d6a96bc 156 font_data.remove('Code')
kenjiArai 1:b1aa1d6a96bc 157 font_data.remove('for')
kenjiArai 1:b1aa1d6a96bc 158 font_data.remove('char')
kenjiArai 1:b1aa1d6a96bc 159 last = font_data.pop()
kenjiArai 1:b1aa1d6a96bc 160 if last == '0x00,':
kenjiArai 1:b1aa1d6a96bc 161 temp_comment[num][1]="NONE"
kenjiArai 1:b1aa1d6a96bc 162 font_data.append('0x00,')
kenjiArai 1:b1aa1d6a96bc 163 else:
kenjiArai 1:b1aa1d6a96bc 164 temp_comment[num][1]=last
kenjiArai 1:b1aa1d6a96bc 165 length = len(font_data)
kenjiArai 1:b1aa1d6a96bc 166 #print(length)
kenjiArai 1:b1aa1d6a96bc 167 for n in range(length):
kenjiArai 1:b1aa1d6a96bc 168 temp_data[num][n] = float(int(font_data[n].replace(',', ''),16))
kenjiArai 1:b1aa1d6a96bc 169 num = num+1
kenjiArai 1:b1aa1d6a96bc 170 print("num=", num, "length=", length)
kenjiArai 1:b1aa1d6a96bc 171 print("Shape of temp_data ",temp_data.shape)
kenjiArai 1:b1aa1d6a96bc 172 map(str, temp_comment)
kenjiArai 1:b1aa1d6a96bc 173 #print(temp_comment)
kenjiArai 1:b1aa1d6a96bc 174 #np.savetxt("temp0.txt",temp_data,fmt="%.0f",delimiter=",")
kenjiArai 1:b1aa1d6a96bc 175 file.close()
kenjiArai 1:b1aa1d6a96bc 176 print("###### Finsh ########")
kenjiArai 1:b1aa1d6a96bc 177
kenjiArai 1:b1aa1d6a96bc 178
kenjiArai 1:b1aa1d6a96bc 179 ## Step 2 ------- Make temporary file --------------------------------
kenjiArai 1:b1aa1d6a96bc 180 ## step21 -> Preparation
kenjiArai 1:b1aa1d6a96bc 181 array = num
kenjiArai 1:b1aa1d6a96bc 182 axis_x = width_bit
kenjiArai 1:b1aa1d6a96bc 183 axis_y = height_bit
kenjiArai 1:b1aa1d6a96bc 184 # step22 -> Make temporary file
kenjiArai 1:b1aa1d6a96bc 185 temp_array = np.zeros((array,new_byte_x*new_bit_y)) # not original size but new size
kenjiArai 1:b1aa1d6a96bc 186 print("###### Start convertion ########");
kenjiArai 1:b1aa1d6a96bc 187 for n in range(array):
kenjiArai 1:b1aa1d6a96bc 188 for i in range(new_byte_x):
kenjiArai 1:b1aa1d6a96bc 189 for j in range(new_bit_y):
kenjiArai 1:b1aa1d6a96bc 190 if j < org_bit_x:
kenjiArai 1:b1aa1d6a96bc 191 temp_array[n][i*new_bit_y+j] = temp_data[n][i+org_byte_x*j]
kenjiArai 1:b1aa1d6a96bc 192 else:
kenjiArai 1:b1aa1d6a96bc 193 temp_array[n][i*new_bit_y+j] = 0
kenjiArai 1:b1aa1d6a96bc 194 print("--- Original ------------")
kenjiArai 1:b1aa1d6a96bc 195 print(temp_data)
kenjiArai 1:b1aa1d6a96bc 196 print("--- Converted -----------")
kenjiArai 1:b1aa1d6a96bc 197 print(temp_array)
kenjiArai 1:b1aa1d6a96bc 198 #np.savetxt("temp1.txt", temp_array, fmt="%.0f", delimiter=",")
kenjiArai 1:b1aa1d6a96bc 199 print("###### Finsh ########")
kenjiArai 1:b1aa1d6a96bc 200
kenjiArai 1:b1aa1d6a96bc 201
kenjiArai 1:b1aa1d6a96bc 202 ## Step 3 ------- Change row & column and make -----------------------
kenjiArai 1:b1aa1d6a96bc 203 final_array = np.zeros((array,new_byte_x*new_bit_y))
kenjiArai 1:b1aa1d6a96bc 204 print("###### Change row & column ######")
kenjiArai 1:b1aa1d6a96bc 205 for n in range(array):
kenjiArai 1:b1aa1d6a96bc 206 for i in range(int(new_bit_y/8)):
kenjiArai 1:b1aa1d6a96bc 207 for j in range(new_byte_x):
kenjiArai 1:b1aa1d6a96bc 208 k = i*new_byte_x*8+j*8
kenjiArai 1:b1aa1d6a96bc 209 m = i*new_byte_x*8+j
kenjiArai 1:b1aa1d6a96bc 210 final_array[n][0*new_byte_x+m] = ((int(temp_array[n][0+k]) & 0x01) << 7) + ((int(temp_array[n][1+k]) & 0x01) << 6) +\
kenjiArai 1:b1aa1d6a96bc 211 ((int(temp_array[n][2+k]) & 0x01) << 5) + ((int(temp_array[n][3+k]) & 0x01) << 4) +\
kenjiArai 1:b1aa1d6a96bc 212 ((int(temp_array[n][4+k]) & 0x01) << 3) + ((int(temp_array[n][5+k]) & 0x01) << 2) +\
kenjiArai 1:b1aa1d6a96bc 213 ((int(temp_array[n][6+k]) & 0x01) << 1) + ((int(temp_array[n][7+k]) & 0x01) << 0)
kenjiArai 1:b1aa1d6a96bc 214 final_array[n][1*new_byte_x+m] = ((int(temp_array[n][0+k]) & 0x02) << 6) + ((int(temp_array[n][1+k]) & 0x02) << 5) +\
kenjiArai 1:b1aa1d6a96bc 215 ((int(temp_array[n][2+k]) & 0x02) << 4) + ((int(temp_array[n][3+k]) & 0x02) << 3) +\
kenjiArai 1:b1aa1d6a96bc 216 ((int(temp_array[n][4+k]) & 0x02) << 2) + ((int(temp_array[n][5+k]) & 0x02) << 1) +\
kenjiArai 1:b1aa1d6a96bc 217 ((int(temp_array[n][6+k]) & 0x02) << 0) + ((int(temp_array[n][7+k]) & 0x02) >> 1)
kenjiArai 1:b1aa1d6a96bc 218 final_array[n][2*new_byte_x+m] = ((int(temp_array[n][0+k]) & 0x04) << 5) + ((int(temp_array[n][1+k]) & 0x04) << 4) +\
kenjiArai 1:b1aa1d6a96bc 219 ((int(temp_array[n][2+k]) & 0x04) << 3) + ((int(temp_array[n][3+k]) & 0x04) << 2) +\
kenjiArai 1:b1aa1d6a96bc 220 ((int(temp_array[n][4+k]) & 0x04) << 1) + ((int(temp_array[n][5+k]) & 0x04) << 0) +\
kenjiArai 1:b1aa1d6a96bc 221 ((int(temp_array[n][6+k]) & 0x04) >> 1) + ((int(temp_array[n][7+k]) & 0x04) >> 2)
kenjiArai 1:b1aa1d6a96bc 222 final_array[n][3*new_byte_x+m] = ((int(temp_array[n][0+k]) & 0x08) << 4) + ((int(temp_array[n][1+k]) & 0x08) << 3) +\
kenjiArai 1:b1aa1d6a96bc 223 ((int(temp_array[n][2+k]) & 0x08) << 2) + ((int(temp_array[n][3+k]) & 0x08) << 1) +\
kenjiArai 1:b1aa1d6a96bc 224 ((int(temp_array[n][4+k]) & 0x08) << 0) + ((int(temp_array[n][5+k]) & 0x08) >> 1) +\
kenjiArai 1:b1aa1d6a96bc 225 ((int(temp_array[n][6+k]) & 0x08) >> 2) + ((int(temp_array[n][7+k]) & 0x08) >> 3)
kenjiArai 1:b1aa1d6a96bc 226 final_array[n][4*new_byte_x+m] = ((int(temp_array[n][0+k]) & 0x10) << 3) + ((int(temp_array[n][1+k]) & 0x10) << 2) +\
kenjiArai 1:b1aa1d6a96bc 227 ((int(temp_array[n][2+k]) & 0x10) << 1) + ((int(temp_array[n][3+k]) & 0x10) << 0) +\
kenjiArai 1:b1aa1d6a96bc 228 ((int(temp_array[n][4+k]) & 0x10) >> 1) + ((int(temp_array[n][5+k]) & 0x10) >> 2) +\
kenjiArai 1:b1aa1d6a96bc 229 ((int(temp_array[n][6+k]) & 0x10) >> 3) + ((int(temp_array[n][7+k]) & 0x10) >> 4)
kenjiArai 1:b1aa1d6a96bc 230 final_array[n][5*new_byte_x+m]= ((int(temp_array[n][0+k]) & 0x20) << 2) + ((int(temp_array[n][1+k]) & 0x20) << 1) +\
kenjiArai 1:b1aa1d6a96bc 231 ((int(temp_array[n][2+k]) & 0x20) << 0) + ((int(temp_array[n][3+k]) & 0x20) >> 1) +\
kenjiArai 1:b1aa1d6a96bc 232 ((int(temp_array[n][4+k]) & 0x20) >> 2) + ((int(temp_array[n][5+k]) & 0x20) >> 3) +\
kenjiArai 1:b1aa1d6a96bc 233 ((int(temp_array[n][6+k]) & 0x20) >> 4) + ((int(temp_array[n][7+k]) & 0x20) >> 5)
kenjiArai 1:b1aa1d6a96bc 234 final_array[n][6*new_byte_x+m]= ((int(temp_array[n][0+k]) & 0x40) << 1) + ((int(temp_array[n][1+k]) & 0x40) << 0) +\
kenjiArai 1:b1aa1d6a96bc 235 ((int(temp_array[n][2+k]) & 0x40) >> 1) + ((int(temp_array[n][3+k]) & 0x40) >> 2) +\
kenjiArai 1:b1aa1d6a96bc 236 ((int(temp_array[n][4+k]) & 0x40) >> 3) + ((int(temp_array[n][5+k]) & 0x40) >> 4) +\
kenjiArai 1:b1aa1d6a96bc 237 ((int(temp_array[n][6+k]) & 0x40) >> 5) + ((int(temp_array[n][7+k]) & 0x40) >> 6)
kenjiArai 1:b1aa1d6a96bc 238 final_array[n][7*new_byte_x+m]= ((int(temp_array[n][0+k]) & 0x80) >> 0) + ((int(temp_array[n][1+k]) & 0x80) >> 1) +\
kenjiArai 1:b1aa1d6a96bc 239 ((int(temp_array[n][2+k]) & 0x80) >> 2) + ((int(temp_array[n][3+k]) & 0x80) >> 3) +\
kenjiArai 1:b1aa1d6a96bc 240 ((int(temp_array[n][4+k]) & 0x80) >> 4) + ((int(temp_array[n][5+k]) & 0x80) >> 5) +\
kenjiArai 1:b1aa1d6a96bc 241 ((int(temp_array[n][6+k]) & 0x80) >> 6) + ((int(temp_array[n][7+k]) & 0x80) >> 7)
kenjiArai 1:b1aa1d6a96bc 242 print(temp_array)
kenjiArai 1:b1aa1d6a96bc 243 print(final_array)
kenjiArai 1:b1aa1d6a96bc 244 print("###### Finsh ########")
kenjiArai 1:b1aa1d6a96bc 245 print("###### Created ", out_file_name, " file ######")
kenjiArai 1:b1aa1d6a96bc 246 np.savetxt(out_file_name, final_array, fmt="%.0f", delimiter=",")
kenjiArai 1:b1aa1d6a96bc 247
kenjiArai 1:b1aa1d6a96bc 248
kenjiArai 1:b1aa1d6a96bc 249 ## Step 4------- Format for C source code ----------------------------
kenjiArai 1:b1aa1d6a96bc 250 print("###### Start Formatting ########");
kenjiArai 1:b1aa1d6a96bc 251 file_r = open(out_file_name,'r')
kenjiArai 1:b1aa1d6a96bc 252 file_w = open(output_font_file_name,'a')
kenjiArai 1:b1aa1d6a96bc 253 file_w.write("//---------------------------------------------------------------\n")
kenjiArai 1:b1aa1d6a96bc 254 file_w.write("// This is Font file created by JH1PJL\n//\n")
kenjiArai 1:b1aa1d6a96bc 255 comment = "// created on " + str(now) + "\n//\n"
kenjiArai 1:b1aa1d6a96bc 256 file_w.write(comment)
kenjiArai 1:b1aa1d6a96bc 257 comment = "// Oroginal Font file = " + file_name + "\n// IPAex Font (IPAexGothic) ipaexg00301.zip\n"
kenjiArai 1:b1aa1d6a96bc 258 file_w.write(comment)
kenjiArai 1:b1aa1d6a96bc 259 file_w.write("// https://ja.osdn.net/projects/ipafonts/releases/47610\n//\n")
kenjiArai 1:b1aa1d6a96bc 260 file_w.write("// Convert by GLCD Font Creator\n")
kenjiArai 1:b1aa1d6a96bc 261 file_w.write("// https://www.mikroe.com/glcd-font-creator\n")
kenjiArai 1:b1aa1d6a96bc 262 file_w.write("//---------------------------------------------------------------\n\n")
kenjiArai 1:b1aa1d6a96bc 263 comment = "#include \"fonts.h\"" + "\n\n"
kenjiArai 1:b1aa1d6a96bc 264 file_w.write(comment)
kenjiArai 1:b1aa1d6a96bc 265 comment = "const uint8_t Font" + wh_name + "_Table[] = \n"
kenjiArai 1:b1aa1d6a96bc 266 file_w.write(comment)
kenjiArai 1:b1aa1d6a96bc 267 file_w.write("{\n")
kenjiArai 1:b1aa1d6a96bc 268 n=0
kenjiArai 1:b1aa1d6a96bc 269 string = file_r.readline()
kenjiArai 1:b1aa1d6a96bc 270 data_common = ',' + ' ' + '/' + '/'
kenjiArai 1:b1aa1d6a96bc 271 data_cr = '\n'
kenjiArai 1:b1aa1d6a96bc 272 while string:
kenjiArai 1:b1aa1d6a96bc 273 string = string + ','
kenjiArai 1:b1aa1d6a96bc 274 file_w.write(string)
kenjiArai 1:b1aa1d6a96bc 275 string = file_r.readline()
kenjiArai 1:b1aa1d6a96bc 276 n=n+1
kenjiArai 1:b1aa1d6a96bc 277 file_w.write("};\n")
kenjiArai 1:b1aa1d6a96bc 278 file_w.write(" \n")
kenjiArai 1:b1aa1d6a96bc 279 comment = "sFONT Font" + wh_name + " = {\n"
kenjiArai 1:b1aa1d6a96bc 280 file_w.write(comment)
kenjiArai 1:b1aa1d6a96bc 281 comment = " Font" + wh_name + "_Table,\n"
kenjiArai 1:b1aa1d6a96bc 282 file_w.write(comment)
kenjiArai 1:b1aa1d6a96bc 283 comment = " " + str(org_bit_x) + ", // width \n"
kenjiArai 1:b1aa1d6a96bc 284 file_w.write(comment)
kenjiArai 1:b1aa1d6a96bc 285 comment = " " + str(new_bit_y) + " // Height\n"
kenjiArai 1:b1aa1d6a96bc 286 file_w.write(comment)
kenjiArai 1:b1aa1d6a96bc 287 file_w.write("};\n")
kenjiArai 1:b1aa1d6a96bc 288 file_w.close()
kenjiArai 1:b1aa1d6a96bc 289 file_r.close()
kenjiArai 1:b1aa1d6a96bc 290 print("###### Finsh ########")
kenjiArai 1:b1aa1d6a96bc 291 print("###### Created ", output_font_file_name," file ######")
kenjiArai 1:b1aa1d6a96bc 292 os.remove(out_file_name)