|
英文矢量字体能够正常显示,现在就是中文矢量字体显示不出来,显示出来是一个框框,请大家指点下!
矢量字体使用的是方正简体。
是不是编码格式出现了问题,请大神指教!
void VectorChar_Display(void)
{
unsigned int numberToRead;
unsigned int readbackNumber;
FRESULT err;
GUI_TTF_CS cs0,cs1,cs2,cs3;
GUI_TTF_DATA data;
FIL MyFile;
GUI_SetBkColor(GUI_BLACK);
GUI_SetColor(GUI_RED);
osThreadSuspendAll();
if(f_open(&MyFile, "fzjt.ttf",FA_OPEN_EXISTING|FA_READ)==FR_OK)
{
if(MyFile.fsize > FILE_BUFFER)
while(1);
err = f_read(&MyFile,acBuffer+numberToRead,65535,&readbackNumber);
}
}
osThreadResumeAll();
data.pData = acBuffer;
data.NumBytes = MyFile.fsize;
cs0.pTTF = &data;
cs0.PixelHeight = 72;
cs0.FaceIndex = 0;
cs1.pTTF = &data;
cs1.PixelHeight = 48;
cs1.FaceIndex = 0;
cs2.pTTF = &data;
cs2.PixelHeight = 36;
cs2.FaceIndex = 0;
cs3.pTTF = &data;
cs3.PixelHeight = 24;
cs3.FaceIndex = 0;
GUI_TTF_CreateFont(&font0, &cs0);
GUI_TTF_CreateFont(&font1, &cs1);
GUI_TTF_CreateFont(&font2, &cs2);
GUI_TTF_CreateFont(&font3, &cs3);
//GUI_SetFont(&font3);
//GUI_SetTextMode(GUI_TM_TRANS);
//GUI_DispStringAt("This is a new start, English TTF font I can show here, but chinses charater will be overcome.\0",0,0);
//GUI_SetFont(&font2);
//GUI_SetTextMode(GUI_TM_TRANS);
//GUI_DispStringAt("This is a new start ,start from here TTF&!I think I will success\0",0,80);
//GUI_SetTextMode(GUI_TM_TRANS);
//GUI_SetFont(&font1);
//GUI_DispStringAt("This is a new start, TTF font start here\0",0,300);
GUI_SetFont(&font0);
GUI_SetTextMode(GUI_TM_TRANS);
GUI_UC_SetEncodeUTF8();
GUI_DispStringAt("\xe8\xa5\xbf\xe5\xa5\xa5\xe7\xa7\x91\xe6\x8a\x80", 70, 150);
GUI_DispStringAt("This is a new start, can you help me",0,400);
} |
|