j_font.c
来自「基于μCGUI的嵌入式图形界面设计」· C语言 代码 · 共 96 行
C
96 行
/******************************************************************************
J_GUI
The JJJ's Graphics Interface Library
COPYRIGHT (c) JJJSTUDIO, 2006 BY JJJ.
-- ALL RIGHTS RESERVED --
Filename: J_Font.c
Author : Jianjun Jiang
Created : 2006/02/3
Website : http://www.jjjbbs.com
Modified: NO
Revision: 1.00
Readme : Font...........
******************************************************************************/
extern J_FONT J_Font;
void J_TextOut(UINT16 x,UINT16 y,UINT8 *Str)
{
UINT32 h,n,i,j,k=0;
UINT32 Offset;
while(*Str!='\0')
{
if(*Str < 0x80)
{
n = (J_Font.ASCIICodePixelW/8+((J_Font.ASCIICodePixelW%8)?1:0));
Offset = (*Str) * J_Font.ASCIICodePixelH*n;
for(j=0;j<J_Font.ASCIICodePixelH;j++)
{
for(i=0;i<J_Font.ASCIICodePixelW;i++)
{
if(J_Font.ASCIICode[Offset+j*n+i/8]&(0x80>>(i%8)))
J_LCDSetPixel(x*J_Font.ASCIICodePixelW+k+i,(J_Font.ASCIICodePixelH+J_Font.LineSpacing)*y+j,J_Font.FrontColor);
else
J_LCDSetPixel(x*J_Font.ASCIICodePixelW+k+i,(J_Font.ASCIICodePixelH+J_Font.LineSpacing)*y+j,J_Font.BackColor);
}
for(h=0;h<J_Font.RowSpacing;h++)
J_LCDSetPixel(x*J_Font.ASCIICodePixelW+k+i+h,(J_Font.ASCIICodePixelH+J_Font.LineSpacing)*y+j,J_Font.BackColor);
}
Str++;
k += (J_Font.ASCIICodePixelW + J_Font.RowSpacing);
}
else
{
n = (J_Font.HZKCodePixelW/8+((J_Font.HZKCodePixelW%8)?1:0));
Offset = (94*(*Str-0xA0-1) + (*(Str+1)-0xA0-1))*J_Font.HZKCodePixelH*n;
for(j=0;j<J_Font.HZKCodePixelH;j++)
{
for(i=0;i<J_Font.HZKCodePixelW;i++)
{
if(J_Font.HZKCode[Offset+j*n+i/8]&(0x80>>(i%8)))
J_LCDSetPixel(x*J_Font.HZKCodePixelW+k+i,(J_Font.HZKCodePixelH+J_Font.LineSpacing)*y+j,J_Font.FrontColor);
else
J_LCDSetPixel(x*J_Font.HZKCodePixelW+k+i,(J_Font.HZKCodePixelH+J_Font.LineSpacing)*y+j,J_Font.BackColor);
}
for(h=0;h<J_Font.RowSpacing;h++)
J_LCDSetPixel(x*J_Font.HZKCodePixelW+k+i+h,(J_Font.HZKCodePixelH+J_Font.LineSpacing)*y+j,J_Font.BackColor);
}
Str+=2;
k += (J_Font.HZKCodePixelW + J_Font.RowSpacing);
}
}
}
void J_SetASCIIFont(UINT8 * Font,UINT8 PixelH,UINT8 PixelW)
{
J_Font.ASCIICodePixelH = PixelH;
J_Font.ASCIICodePixelW = PixelW;
J_Font.ASCIICode = Font;
}
void J_SetHZKFont(UINT8 * Font,UINT8 PixelH,UINT8 PixelW)
{
J_Font.HZKCodePixelH = PixelH;
J_Font.HZKCodePixelW = PixelW;
J_Font.HZKCode = Font;
}
void J_SetFontColor(TCOLOR Color)
{
J_Font.FrontColor = Color;
}
void J_SetFontBkColor(TCOLOR Color)
{
J_Font.BackColor = Color;
}
void J_SetFontSpacing(UINT8 LineSpacing,UINT8 RowSpacing)
{
J_Font.LineSpacing = LineSpacing;
J_Font.RowSpacing = RowSpacing;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?