emwin 使用外部字库_探索者+7寸电容屏移植emwin外部字库问题

本文介绍了在EMWIN图形库中使用外部字库遇到的问题,特别是中文显示存在XY翻转和尺寸问题。通过参考代码进行简单修改,成功解决了钢铁侠等中文字符的显示问题,实现了正常、反转、叠加和反色四种显示模式下的字体效果。
摘要由CSDN通过智能技术生成

好像是XY翻转了,钢铁侠那个中文显示有点小问题,我参考原子的代码简单修改了下

[mw_shl_code=c,true]void LCD_Show_Font(u16 x,u16 y,u8 size)

{

u8 mode;

u8 temp,t,t1;

u16 y0=y;

//u8 dzk[32];

u32 tempcolor,tempbkcolor;

u8 PrePenSize;//保存画笔尺寸

PrePenSize = GUI_GetPenSize();

GUI_SetPenSize(1);

//if(size!=12&&size!=16)return;//不支持的size

//Get_HzMat(font,dzk,size);//得到相应大小的点阵数据

tempcolor=GUI_GetColor();

tempbkcolor=GUI_GetBkColor();

mode = GUI_GetTextMode();

if(mode==GUI_TM_NORMAL)//正常显示,文字前景色,背景色填充

{

for(t=0;t

{

temp=GUI_FontDataBuf[t];//得到12数据

for(t1=0;t1<8;t1++)

{

if(temp&0x80)GUI_DrawPoint(x,y);

else

{

GUI_SetColor(tempbkcolor);

GUI_DrawPoint(x,y);

GUI_SetColor(tempcolor);//还原

}

temp<<=1;

y++;

if((y-y0)==size)

{

y=y0;

x++;

break;

}

}

}

}

else if(mode==GUI_TM_REV)//反转显示,文字背景色,前景色填充

{

for(t=0;t

{

temp=GUI_FontDataBuf[t];//得到12数据

for(t1=0;t1<8;t1++)

{

if(temp&0x80)

{

GUI_SetColor(tempbkcolor);

GUI_DrawPixel(x,y);

}

else

{

GUI_SetColor(tempcolor);

GUI_DrawPixel(x,y);

}

temp<<=1;

y++;

if((y-y0)==size)

{

y=y0;

x++;

break;

}

}

}

}

else if(mode==GUI_TM_TRANS)//叠加显示,透明显示

{

for(t=0;t

{

temp=GUI_FontDataBuf[t];//得到12数据

for(t1=0;t1<8;t1++)

{

if(temp&0x80)GUI_DrawPoint(x,y);

temp<<=1;

y++;

if((y-y0)==size)

{

y=y0;

x++;

break;

}

}

}

}

else if(mode==GUI_TM_XOR)//反色显示,透明显示

{

GUI_SetDrawMode(GUI_DRAWMODE_XOR);

for(t=0;t

{

temp=GUI_FontDataBuf[t];//得到12数据

for(t1=0;t1<8;t1++)

{

if(temp&0x80)GUI_DrawPoint(x,y);

temp<<=1;

y++;

if((y-y0)==size)

{

y=y0;

x++;

break;

}

}

}

}

GUI_SetPenSize(PrePenSize);

GUI_SetColor(tempcolor);

GUI_SetBkColor(tempbkcolor);

}[/mw_shl_code]

这样中文也支持EMWIN的字体显示效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值