bmp data for OSD

海思方案的OSD叠加是通过bmp位图数据来实现,如何将asc码或者中文字符动态生成bmp数据呢?

1、工具:SDL_ttf

2、SDL_ttf简介


SDL本身没有显示文字功能,它需要用扩展库SDL_ttf来显示文字。ttfTrue Type Font的缩写,ttfWindows下的缺省字体,它有美观,放大缩小不变形的优点,因此广泛应用很多场合。freeType是一个跨平台开源项目, 它可以在利用ttf字体输出到屏幕上。一般的linux发行版本都带了这个库(libfreetype.so),Windows下也有相应的移植版本。

SDL_ttf封装freetype的库函数,提供一些简化的扩展接口提供SDL开发者使用。

使用ttf库的第一件事要从Windows的字库下拷贝出一个字库出来,最好是中文字体,这样可以同时支持英文和中文显示。它一般在c:\windows \fonts 目录下面。比如simsun.ttf 就是仿宋体的字库,将这个文件拷贝到你的项目目录下。或者一个指定目录。


3、交叉编译移植


依赖关系:SDL_ttf依赖于freetype与SDL两个库,交叉编译SDL_ttf之前先交叉编译freetype与SDL


3.0 、下载


freetype-2.5.5:

点击进入下载页面

SDL-1.2.15:

点击打开链接

SDL_ttf-2.0.11:

 点击打开链接


3.1、freetype交叉编译


# ./configure --prefix=/opt/arm/freetype --enable-shared --host=arm-hisiv100nptl-linux --without-png
# make 
# make install


3.2、SDL交叉编译


# ./configure --prefix=/opt/arm/SDL --host=arm-hisiv100nptl-linux 
# make 
# make install


3.3、SDl_ttf交叉编译


# ./configure --prefix=/opt/arm/SDL_ttf --host=arm-hisiv100nptl-linux --with-freetype-prefix=/opt/arm/freetype --with-sdl-prefix=/opt/arm/SDL 

# make

# make install


4、API应用


函数接口

TTF_Init

TTF_OpenFont
TTF_SetFontStyle  

TTF_RenderUTF8_Solid

SDL_ConvertSurface

SDL_FreeSurface

TTF_CloseFont

TTF_Quit

编译规则:


$(CC) -I ./SDL_ttf/include/SDL  -I ./SDL/include/SDL -I ./freetype/include/freetype2/ -pthread -lm -o ttf_test ./src/ttf_test.c  ./SDL_ttf/lib/libSDL_ttf.a ./freetype/lib/libfreetype.a ./SDL/lib/libSDL.a


附录


轻量级ttf字库下载地址(方正兰亭黑)


 点击打开链接

你可能感兴趣的:(Multimedia,osd,SDL_ttf,linux)