运行可用:使用FreeType输出中文汉字点阵图形的源码

简介: 运行可用:使用FreeType输出中文汉字点阵图形的源码

 整合了几篇文章,并进行了修改测试。成功之后,放出来供大家参考。


字体下载

https://download.csdn.net/download/quantum7/12600359


 不知道哪个字体能显示汉字,那就下载几个。吾初始都是设置为0,系统自动增加。


代码

 中文能显示,英文当然更能了。


#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <ft2build.h>
#include <freetype/freetype.h>
#include FT_FREETYPE_H
#define FONT_FILE "/home/quantum6/code/test-fonts/simsun.ttc"
int main()
{
    FT_Library  m_pFTLib;
    FT_Face     m_pFTFace;
    int i=0;
    int j=0;
    wchar_t chinese_char = L'泰';
    FT_Error result = FT_Init_FreeType(&m_pFTLib);
    if(FT_New_Face(m_pFTLib, FONT_FILE, 0, &m_pFTFace))
     {
        printf("FT_New_Face error!\n");
        return;
     }
    //FT_ENCODING_GB2312, FT_ENCODING_UNICODE
    FT_Select_Charmap(m_pFTFace, FT_ENCODING_UNICODE);
    FT_Set_Char_Size(m_pFTFace, 0, 12<<6, 200, 200);
    result = FT_Load_Glyph(m_pFTFace, FT_Get_Char_Index(m_pFTFace, chinese_char), FT_LOAD_DEFAULT);
     // 第二个参数为渲染模式
    result = FT_Render_Glyph(m_pFTFace->glyph,  FT_RENDER_MODE_NORMAL);  
    printf("result=%d\n", result);
    FT_Bitmap bmp = m_pFTFace->glyph->bitmap;
    int h = bmp.rows;
    int w = bmp.width;
    for (i=0; i<h; i++)
    {
        for (j=0; j<w; j++)
        {
            printf(((bmp.buffer[i * w  + j]) == 0 ) ? " " : "1");
        }
        printf("\n");
    }
}

编译脚本

rm test
gcc ft.c \
    -o test \
    -I/usr/include/freetype2 \
    -L/usr/lib64 -lfreetype
./test

输出结果

image.png

目录
相关文章
|
Python
python、十六进制的颜色对照表
英文代码  形像颜色  HEX格式  RGB格式 LightPink 浅粉色 #FFB6C1 255,182,193 Pink 粉红 #FFC0CB 255,192,203 Crimson 猩红 #DC143C 220,20,60 LavenderBlush 脸红的淡紫色 #FFF0F5 255.
7422 0
python、十六进制的颜色对照表
|
7月前
|
Python
利用Python控制终端打印字体的颜色和格式
利用Python控制终端打印字体的颜色和格式
91 2
用c语言输出有颜色的字体 printf输出 控制台程序修改文本位置 设置控制台程序窗口标题
用c语言输出有颜色的字体 printf输出 控制台程序修改文本位置 设置控制台程序窗口标题
led点阵---显示数字或汉字(内含代码+注释+图片)
led点阵---显示数字或汉字(内含代码+注释+图片)
816 0
led点阵---显示数字或汉字(内含代码+注释+图片)
|
搜索推荐 Python
Python如何输出文本到屏幕
Python如何输出文本到屏幕
243 0
|
存储 编解码
[oeasy]python0123_中文字符_文字编码_gb2312_激光照排技术_王选
[oeasy]python0123_中文字符_文字编码_gb2312_激光照排技术_王选
159 0
[oeasy]python0123_中文字符_文字编码_gb2312_激光照排技术_王选
|
存储 Unix 开发工具
[oeasy]python0111_字型码_字符字型编码_点阵字库_ascii演化
[oeasy]python0111_字型码_字符字型编码_点阵字库_ascii演化
170 0
 [oeasy]python0111_字型码_字符字型编码_点阵字库_ascii演化
|
存储
[oeasy]python0110 屏幕点阵字体_3x5_5x7_雅达利字库
[oeasy]python0110 屏幕点阵字体_3x5_5x7_雅达利字库
162 0
[oeasy]python0110 屏幕点阵字体_3x5_5x7_雅达利字库
|
算法 Shell
[oeasy]python0106 七段数码管_显示字母_BP机
[oeasy]python0106 七段数码管_显示字母_BP机
227 0
 [oeasy]python0106 七段数码管_显示字母_BP机
|
索引 Python
[oeasy]python0078_设置索引颜色_index_color_ansi_控制终端颜色
[oeasy]python0078_设置索引颜色_index_color_ansi_控制终端颜色
136 0
[oeasy]python0078_设置索引颜色_index_color_ansi_控制终端颜色

热门文章

最新文章