freetype+SDL+SDL_ttf移植及demo

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$ ls
freetype-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-linux
make
make 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/g
3/修改/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-linux
make
make install
//ATTENTION:一定要注意安装成功一个库才能安装下一个库

4/SDL_ttf安装:

tar -xvf SDL_ttf-***.tar.gz 解压
进入SDL_ttf文件目录
执行./configure --host=arm-hisiv300-linux
make
make 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   -lSDL -lSDL_ttf -Wl,-rpath,/usr/local/lib

资源下载

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

参考文档

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

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值