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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM