FreeType2是一个简单的跨平台的字体绘制引擎
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。
SDL_ttf是TrueType字体渲染库,使用SDL库,几乎一样的便携。这取决于FreeType2处理TrueType字体数据。它允许程序员使用多个TrueType字体无需代码的字体渲染程序本身。随着轮廓字体和反走样的力量,高质量的文本输出可以毫不费力的获得。
下面三个包,可以从我的资源下载,也可以在网上找.
据说三个库不匹配会出问题,你懂得,出了问题改起来很麻烦的.
linux@ubuntu:~/tmp/sdl$ ls
freetype-2.4.10.tar.gz SDL-1.2.15.tar.gz SDL_ttf-2.0.11.tar.gz
tar -xvf freetype***.tar.bz2 解压
进入freetype文件目录
执行./configure --host=arm-hisiv300-linux
make
make install
//ATTENTION:一定要注意安装成功一个库才能安装下一个库
上述命令敲击过后,会在/usr/local/目录下
生成bin目录
生成include目录
生成lib目录
而我们要做的是
1/修改/usr/local/include/ft2build.h文件 56行
#include
2/修改/usr/local/include/freetype2/freetype/config/ftheader.h文件,全篇
在底行模式下键入
%s/freetype/freetype2\/freetype/g
3/修改/usr/local/freetype2/freetype/config/ftheader.h文件,173行
#define FT_FREETYPE_H
tar -xvf SDL-***.tar.gz 解压
进入SDL文件目录
执行./configure --host=arm-hisiv300-linux
make
make install
//ATTENTION:一定要注意安装成功一个库才能安装下一个库
tar -xvf SDL_ttf-***.tar.gz 解压
进入SDL_ttf文件目录
执行./configure --host=arm-hisiv300-linux
make
make install
//ATTENTION:一定要注意安装成功
/test.c/
#include
#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;
}
/*编译选项*/
gcc test.c -lSDL -lSDL_ttf -Wl,-rpath,/usr/local/lib
编译正常且运行正常的前提是所有的动态库都默认装在了/usr/local/目录下
且目录下有个simhei.ttf文件
当然,也可以看我的demo,点击资源下载标题就可以了
关于Hi35xx平台 移植freetype、SDL以及SDL_ttf的分享总结