freetype使用总结

  FreeType是一个完全开源的、可扩展、可定制且可移植的字体引擎,它提供TrueType字体驱动的实现统一的接口来访问多种字体格式文件,

包括点阵字、TrueType、OpenType、Type1等等乱七八糟的

  说到freetype的使用方法,自带的文档已经介绍的很清楚了,这里稍微总结下:

  首先要理解矢量文字的实现过程:

    1)给定一个文字,无论是神马编码方式(ASCII、GBK、unicode、BIG5),都可以确定他的编码值

    2)根据编码值从字体文件中找到“glyph”

    3)设置字体大小

    4)用某些函数把glyph里的点缩放为设置的字体大小

    5)转换为位图点阵

    6)在LCD上显示出来

  差不多这样吧,根据这些步骤,再参考文档,就可以确定代码的书写步骤了    // 注:代码摘自文档自带的例子

    1)初始化

        error = FT_Init_FreeType( &library );              /* initialize library */

    2)加载字体face  /* 字体这里神马个意思不好说,哪位大神有好的翻译了真心求教 */

      error = FT_New_Face( library, argv[1], 0, &face ); /* create face object */

    3)设置字体大小

      error = FT_Set_Char_Size( face, 50 * 64, 0,100, 0 ); /* set character size */

      FT_Set_Pixel_Sizes(face,24,0);

    4)变换(移动\旋转)

      FT_Set_Transform( face, &matrix, &pen );

    5)根据编码值加载glyph   /* 这个过程满复杂的,不过freetype代码写的好,一个函数统统搞定 */

      error = FT_Load_Char( face, text[n], FT_LOAD_RENDER );

    6)转换为位图

      draw_bitmap( &slot->bitmap,slot->bitmap_left,target_height - slot->bitmap_top );

    7)print

      show_image();

   一气呵成,nice

时间: 2024-10-11 22:07:13

freetype使用总结的相关文章

ubuntu 中php不支持gd库的freetype,导致页面验证码无法加载

1.修改源 cp /etc/apt/sources.list /etc/apt/sources.list.bak vim /etc/apt/sources.list 先删除里面的东西,再将下列写入: deb http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ precise-security main restricted uni

使用freetype来显示中文汉字和英文字符

这里我们用到了freetype.进入官网http://savannah.nongnu.org/download/freetype/ 中下载最新的版本2.7的源代码和文件.freetype-2.7.tar.gz freetype-doc-2.7.tar.gz 首先我们在使用官方提供的程序在pc上运行一下. 在freetype-doc-2.7.tar.gz文件中的docus目录下的tutorial有一个example.c的源文件. example.c: /* example1.c */ /* */

linux freetype 安装

freetype下载: http://download.savannah.gnu.org/releases/freetype/ 命令行如下所示. [[email protected] root]# cd /usr/local/src///进入软件源码包所在目录 [[email protected] src]# tar zxvf freetype-2.3.5.tar.gz//解包解压到freetype-2.3.5目录 [[email protected] src]# cd freetype-2.3

LOG.ZS.0001.基于Freetype的游戏字体渲染优化思路

Total Utf8-ucs2 Html_parse Layout Render_string Init_texture Ft_load_glyph 原始 2293 1 26 708 1556 2 1403 上表用于记录优化各步骤的消耗时间. 生成的文本纹理,文本是加州宾馆的全歌词. 原始版本整个纹理的生成耗时2300毫秒左右,可以看到实际是慢得发指. 究其原因,是由于实现iron引擎的时候未进行任何性能方面的考虑. 上述时间表的构成: total : 总消耗时间 utf8-ucs2: 将utf

freetype显示矢量字体 -- 在LCD上测试

配置交叉编译工具连我的环境变量:/home/usr/local/arm/4.3.2/bin 解压freetype-2.4.10.tar.bz2 进入配置交叉编译工具:./configure --host=arm-linux编译  make 暂时安装到当前目录下tmp目录make DESTDIR=$PWD/tmp install 拷贝库文件到交叉编译器里:把tmp/usr/local/lib/*  复制到 /home/usr/local/arm/4.3.2/arm-none-linux-gnuea

NeHe OpenGL教程 第四十三课:FreeType库

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第四十三课:FreeType库 在OpenGL中使用FreeType库 使用FreeType库可以创建非常好看的反走样的字体,记住暴雪公司就是使用这个库的,就是那个做魔兽世界的.尝试一下吧,我只告诉你了基本的使用方式,你可以走的更远

outdated: 43.FreeType Fonts in OpenGL

FreeType一个字体库,主要体现FreeType抗锯齿效果. 图中第一行为ttf字体,第二行为点阵字体,各有各的好处,不过ttf用的比较多.可以看出第一行字体的效果更好. 这是用到的库文件,放到了我的GitHub,下载地址. 配置方法即文件放置位置还是按以前的来,在VS2015中,项目属性->链接器->附加依赖项加入libfreettpe.lib. 在原文中有两个bugfix,链接在这.我也在文中直接修改了. 在原本的代码中还有两个bug且都在FreeType.cpp文件中,为print(

C# FreeType 的使用

当前XAMARIN在IOS以及ANDROID上没有完整的FreeType绑定,如果使用自己的游戏引擎, 那么就要有一套FreeType绑定才好.目前比较成熟的SharpFont算是比较好的绑定库,拿下代码稍加修改就可以适应IOS\ANDROID及WINDOWS下的使用,但是这里面有个问题,FREETYPE的头文件里面类型定义有许多没有太好的考虑32.64位兼容问题,许多地方用了LONG定义,这个在32位系统下还好说,SHARPFONT可以好好适应,但是在64位平台下就完全乱套了,C#下的类型只有

GD with FreeType or ImageMagick PHP extensions are required.错误解决

GD with FreeType or ImageMagick PHP extensions are required. FreeType OR ImageMagick  请求GD库PHP扩展.我找到出现这个问题的原因在于yii后台验证码需要引入这个库的图形处理功能,路径不对和这extension=php_gd2.dll库文件没有打开. extension_dir = "c:/wamp/php/ext";(注:这是我本地的扩展库路径,需要修改为正确路径,即 extension=php_