运行可用:使用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.
6582 0
python、十六进制的颜色对照表
|
8月前
|
C语言
用c语言输出有颜色的字体 printf输出 控制台程序修改文本位置 设置控制台程序窗口标题
用c语言输出有颜色的字体 printf输出 控制台程序修改文本位置 设置控制台程序窗口标题
VC中如何把一串文字旋转90度显示
VC中如何把一串文字旋转90度显示
|
7月前
|
搜索推荐 Python
Python如何输出文本到屏幕
Python如何输出文本到屏幕
86 0
led点阵---显示数字或汉字(内含代码+注释+图片)
led点阵---显示数字或汉字(内含代码+注释+图片)
479 0
led点阵---显示数字或汉字(内含代码+注释+图片)
|
11月前
|
小程序 JavaScript 前端开发
vba 在代码窗口里不能正常显示的双字节字符的转换
vba 在代码窗口里不能正常显示的双字节字符的转换
76 0
|
存储 编解码
[oeasy]python0123_中文字符_文字编码_gb2312_激光照排技术_王选
[oeasy]python0123_中文字符_文字编码_gb2312_激光照排技术_王选
116 0
[oeasy]python0123_中文字符_文字编码_gb2312_激光照排技术_王选
|
存储 Unix 开发工具
[oeasy]python0111_字型码_字符字型编码_点阵字库_ascii演化
[oeasy]python0111_字型码_字符字型编码_点阵字库_ascii演化
134 0
 [oeasy]python0111_字型码_字符字型编码_点阵字库_ascii演化
|
Shell 流计算 Python
[oeasy]python0068_ 字体样式_正常_加亮_变暗_控制序列
[oeasy]python0068_ 字体样式_正常_加亮_变暗_控制序列
108 0
[oeasy]python0068_ 字体样式_正常_加亮_变暗_控制序列
|
编解码
Debug栏打印时自动把Unicode编码转化成汉字
Debug栏打印时自动把Unicode编码转化成汉字
126 0
Debug栏打印时自动把Unicode编码转化成汉字

热门文章

最新文章