⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ddd.c

📁 Generate font for embedded system
💻 C
字号:
#include "ddd.h"

#ifndef EX_FONT_CHAR
# define EX_FONT_CHAR(value)
# define EX_FONT_UNICODE_VAL(value) (value),
# define EX_FONT_ANSI_VAL(value) (value),
#endif

struct _thin_unicode_font8x16 {unsigned short value; unsigned char data[1][16];} thin_unicode_font8x16[14] = 
{
	{
		EX_FONT_CHAR("0")
		EX_FONT_UNICODE_VAL(0x0030)
		{0x00, 0x00, 0x00, 0x1e, 0x33, 0x37, 0x37, 0x33, 0x3b, 0x3b, 0x33, 0x1e, 0x00, 0x00, 0x00, 0x00}
	},
	{
		EX_FONT_CHAR("1")
		EX_FONT_UNICODE_VAL(0x0031)
		{0x00, 0x00, 0x00, 0x0c, 0x1c, 0x7c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00}
	},
	{
		EX_FONT_CHAR("2")
		EX_FONT_UNICODE_VAL(0x0032)
		{0x00, 0x00, 0x00, 0x3c, 0x66, 0x66, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00, 0x00, 0x00, 0x00}
	},
	{
		EX_FONT_CHAR("3")
		EX_FONT_UNICODE_VAL(0x0033)
		{0x00, 0x00, 0x00, 0x3c, 0x66, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00}
	},
	{
		EX_FONT_CHAR("4")
		EX_FONT_UNICODE_VAL(0x0034)
		{0x00, 0x00, 0x00, 0x30, 0x30, 0x36, 0x36, 0x36, 0x66, 0x7f, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00}
	},
	{
		EX_FONT_CHAR("5")
		EX_FONT_UNICODE_VAL(0x0035)
		{0x00, 0x00, 0x00, 0x7e, 0x60, 0x60, 0x60, 0x7c, 0x06, 0x06, 0x0c, 0x78, 0x00, 0x00, 0x00, 0x00}
	},
	{
		EX_FONT_CHAR("6")
		EX_FONT_UNICODE_VAL(0x0036)
		{0x00, 0x00, 0x00, 0x1c, 0x18, 0x30, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00}
	},
	{
		EX_FONT_CHAR("7")
		EX_FONT_UNICODE_VAL(0x0037)
		{0x00, 0x00, 0x00, 0x7e, 0x06, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00}
	},
	{
		EX_FONT_CHAR("8")
		EX_FONT_UNICODE_VAL(0x0038)
		{0x00, 0x00, 0x00, 0x3c, 0x66, 0x66, 0x76, 0x3c, 0x6e, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00}
	},
	{
		EX_FONT_CHAR("9")
		EX_FONT_UNICODE_VAL(0x0039)
		{0x00, 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x18, 0x38, 0x00, 0x00, 0x00, 0x00}
	},
	{
		EX_FONT_CHAR("a")
		EX_FONT_UNICODE_VAL(0x0061)
		{0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00, 0x00, 0x00, 0x00}
	},
	{
		EX_FONT_CHAR("b")
		EX_FONT_UNICODE_VAL(0x0062)
		{0x00, 0x00, 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00, 0x00, 0x00}
	},
	{
		EX_FONT_CHAR("c")
		EX_FONT_UNICODE_VAL(0x0063)
		{0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00}
	},
	{
		EX_FONT_CHAR("d")
		EX_FONT_UNICODE_VAL(0x0064)
		{0x00, 0x00, 0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, 0x00, 0x00, 0x00}
	}
};


#undef thin_char_nr
#define thin_char_nr sizeof(thin_unicode_font8x16)/sizeof(thin_unicode_font8x16[0]) 
#undef wide_char_nr
#define wide_char_nr sizeof(wide_unicode_font16x16)/sizeof(wide_unicode_font16x16[0]) 

static EXFONT_DATA_ITEM thin_font16_items[thin_char_nr];
static EXFONT_DATA_ITEM wide_font16_items[wide_char_nr]; 
static EXFONT_DATA thin_font16; 
static EXFONT_DATA wide_font16; 
EXFONT g_unicode_font16; 

#ifndef RGB
#define RGB(r, g, b) (r) << 16 | (g) << 8 | (b)
#endif

void install_unicode_16x16_font(draw_pixel_func my_draw_pixel)
{
	size_t i = 0;

	for(i = 0; i < thin_char_nr; i++)
	{
		thin_font16_items[i].value = thin_unicode_font8x16[i].value;
		thin_font16_items[i].data = (unsigned char*)thin_unicode_font8x16[i].data;
	}

	for(i = 0; i < wide_char_nr; i++)
	{
		wide_font16_items[i].value = wide_unicode_font16x16[i].value;
		wide_font16_items[i].data = (unsigned char*)wide_unicode_font16x16[i].data;
	}

	EXFONT_data_init(&thin_font16, 8, 16, thin_char_nr, thin_font16_items);
	EXFONT_data_init(&wide_font16, 16, 16, wide_char_nr, wide_font16_items);

	EXFONT_init(&g_unicode_font16, "g_unicode_font16", 
		RGB(255, 0, 0), 
		RGB(0, 255, 0), 
		BKMODE_TRANSPARENT,
		my_draw_pixel);

	EXFONT_set_thin_font_data(&g_unicode_font16, &thin_font16);
	EXFONT_set_wide_font_data(&g_unicode_font16, &wide_font16);

	return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -