首页 > 学院 > 开发设计 > 正文

freetype+SDL+SDL_ttf移植及demo

2019-11-06 08:49:59
字体:
来源:转载
供稿:网友

freetype+SDL+SDL_ttf简介

FreeType2是一个简单的跨平台的字体绘制引擎

SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(linux、Windows、Mac OS X等)的应用软件。

SDL_ttf是TrueType字体渲染库,使用SDL库,几乎一样的便携。这取决于FreeType2处理TrueType字体数据。它允许程序员使用多个TrueType字体无需代码的字体渲染程序本身。随着轮廓字体和反走样的力量,高质量的文本输出可以毫不费力的获得。


0/源码下载

下面三个包,可以从我的资源下载,也可以在网上找.据说三个库不匹配会出问题,你懂得,出了问题改起来很麻烦的.linux@Ubuntu:~/tmp/sdl$ lsfreetype-2.4.10.tar.gz SDL-1.2.15.tar.gz SDL_ttf-2.0.11.tar.gz

1/freetype安装:

tar -xvf freetype***.tar.bz2 解压进入freetype文件目录执行./configure --host=arm-hisiv300-linuxmakemake install //ATTENTION:一定要注意安装成功一个库才能安装下一个库

2/修改freetype的头文件

上述命令敲击过后,会在/usr/local/目录下生成bin目录生成include目录生成lib目录而我们要做的是1/修改/usr/local/include/ft2build.h文件 56行#include <freetype2/freetype/config/ftheader.h> 2/修改/usr/local/include/freetype2/freetype/config/ftheader.h文件,全篇在底行模式下键入 %s/freetype/freetype2//freetype/g3/修改/usr/local/freetype2/freetype/config/ftheader.h文件,173行#define FT_FREETYPE_H <freetype2/freetype/freetype.h>

3/SDL安装:

tar -xvf SDL-***.tar.gz 解压进入SDL文件目录执行./configure --host=arm-hisiv300-linuxmakemake install//ATTENTION:一定要注意安装成功一个库才能安装下一个库

4/SDL_ttf安装:

tar -xvf SDL_ttf-***.tar.gz 解压进入SDL_ttf文件目录执行./configure --host=arm-hisiv300-linuxmakemake install//ATTENTION:一定要注意安装成功

5/创建demo

/test.c/#include<stdio.h>#include "SDL/SDL.h"#include "SDL/SDL_ttf.h"int main(int argc, const char *argv[]){ char * pstr = "hello"; SDL_PixelFormat *fmt; TTF_Font *font; SDL_Surface *text, *temp; if (TTF_Init() < 0 ) { fPRintf(stderr, "Couldn't initialize TTF: %s/n",SDL_GetError()); SDL_Quit(); } font = TTF_OpenFont("./simhei.ttf", 48); if ( font == NULL ) { fprintf(stderr, "Couldn't load %d pt font from %s: %s/n",18,"ptsize", SDL_GetError()); } SDL_Color forecol = { 0xff, 0xff, 0xff, 0xff }; text = TTF_RenderUTF8_Solid(font, pstr, forecol); fmt = (SDL_PixelFormat*)malloc(sizeof(SDL_PixelFormat)); memset(fmt,0,sizeof(SDL_PixelFormat)); fmt->BitsPerPixel = 16; fmt->BytesPerPixel = 2; fmt->colorkey = 0xffffffff; fmt->alpha = 0xff; temp = SDL_ConvertSurface(text,fmt,0); SDL_SaveBMP(temp, "save.bmp"); SDL_FreeSurface(text); SDL_FreeSurface(temp); TTF_CloseFont(font); TTF_Quit(); return 0;}

6/编译

/*编译选项*/gcc test.c -I/usr/local/include -L/usr/local/lib -lSDL -lSDL_ttf -Wl,-rpath,/usr/local/lib

资源下载

编译正常且运行正常的前提是所有的动态库都默认装在了/usr/local/目录下且目录下有个simhei.ttf文件当然,也可以看我的demo,点击资源下载标题就可以了

参考文档

关于Hi35xx平台 移植freetype、SDL以及SDL_ttf的分享总结


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表