青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

HUUYUU

FreeType2研究

FreeType2研究

最近學(xué)習(xí)狀態(tài)不佳,感覺(jué)什么都想做卻什么也做不下去,浮躁之極。大的庫(kù)一下子研究不下來(lái),索性找一下小庫(kù)來(lái)看看。
游戲里面一般都涉及到文本、壓縮、圖像、腳本的概念,為了將來(lái)有機(jī)會(huì)研究游戲所以先下手這些小庫(kù),不求甚解只求用好。

先從字體著手,F(xiàn)reeType字體作為一種字體文件編程開(kāi)發(fā)包,廣泛易用在游戲里面。網(wǎng)上漢語(yǔ)資料比較少,只能看它的faq。翻譯了部分如下:

FreeType 2 Library

FAQ

(當(dāng)前下載地址: http://sourceforge.net/project/showfiles.php?group_id=3157 版本 2.2.1

1、? FreeType2 是什么?

它是一個(gè)為各種應(yīng)用程序提供通用的字體文件訪問(wèn)的軟件包。尤其值得注意的以下特性:

l???????? 提供統(tǒng)一的字體文件訪問(wèn)接口。支持位圖和向量格式,包括 TrueType OpenType Typel CID CFF Windows FON/FNT X11 PCF

l???????? 提供高效反走樣的基于 256 灰度級(jí)的位圖字形的生產(chǎn)。

l???????? 模塊清晰,每種字體格式對(duì)于一個(gè)模塊。類(lèi)庫(kù)的構(gòu)建可以按照你需要支持的格式進(jìn)行裁減以減小代碼尺寸。(最小的反走樣 FreeType 庫(kù) <30Kb

2、? FreeType2 能做什么?

FT2 已經(jīng)易用于許多領(lǐng)域。例如:

l???????? 圖形子系統(tǒng)和文本顯示庫(kù)

l???????? 文本排版(布局、分頁(yè)、渲染)

l???????? 字體識(shí)別和轉(zhuǎn)換工具

一般來(lái)說(shuō),該庫(kù)使得你能輕松的操縱字體文件。

3、? FreeType2 不能做什么?

FT2 并不包含大量豐富的高級(jí)特性,它只定位于出色的字體服務(wù)。也就是說(shuō)下面的一些特性 FT2 類(lèi)庫(kù)并不直接提供支持,然而你可以以它為基礎(chǔ)在上層進(jìn)行實(shí)現(xiàn):

l???????? 任意表面的文字渲染

FT2 不是圖形庫(kù)所以它僅支持兩種象素格式的文本渲染: 1-bit 的單色位圖和 8-bit 的灰度象素。

如果你需要繪制其它格式的表面(例如 24-bit RGB 象素),你就得選擇其它你喜愛(ài)的圖形庫(kù)來(lái)做。

注意:為了渲染向量輪廓文本而不是放走樣的象素,應(yīng)用程序可以提供自己的渲染回調(diào)以繪制或者直接組合反走樣文本到任意目標(biāo)表面。

l???????? 文本緩存

每次從字體中請(qǐng)求文本圖象, FT2 都要解析字體文件 / 流相關(guān)部分,通過(guò)它的字體格式進(jìn)行解釋。對(duì)于某些特殊格式可能會(huì)很慢包括像 TrueType (或者 Type1 )這樣的向量字體。

注意:自從 2.0.1 版本開(kāi)始 FT2 提供了一個(gè) beta 版本的緩存子系統(tǒng)。當(dāng)然你還是可以寫(xiě)自己的緩存來(lái)滿(mǎn)足某種特殊需求。

l???????? 文本布局

不支持文本布局操作。高級(jí)操作例如文本替換、字距調(diào)整、兩端調(diào)整等都不屬于字體服務(wù)本身職責(zé)。

4、? FreeType2 可移植性?

FT2 源碼可移植性很好由于以下原因:

l???????? 代碼書(shū)寫(xiě)遵循 ANSI C 標(biāo)準(zhǔn)

l???????? 對(duì)于各種編譯警告我們都謹(jǐn)慎的避免。當(dāng)前代碼在很多編譯器上編譯通過(guò)且沒(méi)有產(chǎn)生一條警告。

l???????? 庫(kù)沒(méi)有使用任何硬編碼,是嵌入式系統(tǒng)開(kāi)發(fā)的一個(gè)好的選擇。(例如它能夠直接在 ROM 中運(yùn)行)

同時(shí),我們盡最大努力確保庫(kù)的高效、緊湊和友好性。

5、? FreeType2 FreeType1.x 的區(qū)別?

最大的區(qū)別就是:

l???????? FT1 僅支持 TrueType 格式,而 FT2 支持很多格式。

l???????? FT2 APIs FT1 APIs 簡(jiǎn)單且強(qiáng)大。

l???????? FT1 包括 OpenType 文本布局處理擴(kuò)展,而 FT2 中則不包括而是移到獨(dú)立的工程里面―― FreeType Layout 。( FT 布局目前無(wú)法獲取)

6、? FreeType2 是否兼容 FreeType 1.x

FreeType2 不直接兼容 FreeType 1.x ,但是我們可以提供一個(gè)二進(jìn)制兼容層使得應(yīng)用程序重鏈接到新版本。我們最終放棄了這種想法因?yàn)閮蓚€(gè)版本可以共存在一個(gè)系統(tǒng)中。(沒(méi)有命名沖突)

FT2 API 1.x 簡(jiǎn)單且強(qiáng)大,所以我們鼓勵(lì)你采用新版本,這樣可以使你減少很多不必要的工作。

7、? 是否可以使用 FreeType2 編輯字體或者創(chuàng)建新字體?

答案是明確的:不可以。因?yàn)樵搸?kù)設(shè)計(jì)明確,用較少代碼和內(nèi)存讀取字體文件。所以我們不打算以任何方式在字體引擎里面支持編輯或者創(chuàng)建功能,因?yàn)檫@樣將導(dǎo)致整個(gè)代碼重寫(xiě)。這并不意味我們將來(lái)不會(huì)引入字體編輯 / 創(chuàng)建功能庫(kù),這取決于需求(或者說(shuō)有多少人愿意為此買(mǎi)單)。

在我們正式發(fā)布前不要在這方面進(jìn)行揣測(cè),對(duì)我們而言這個(gè)項(xiàng)目存在其他一些更重要的部分需要解決(像文字布局、文本緩存)。

編譯 & 配置

1、? 如何編譯 FreeType2 庫(kù)?

可以采取多種編譯方式,在 freetype2/docs/build 下有詳細(xì)說(shuō)明文檔。

這里介紹最簡(jiǎn)單的基于 VS IDE 的編譯方式。 freetype\builds\win32\visualc 下有 VC6 VC7.1 的工作區(qū)文件。 VC6 打開(kāi)后直接編譯,有幾個(gè)警告。



光看或許無(wú)法到感性認(rèn)識(shí),于是來(lái)兩個(gè)demo。網(wǎng)上比較少,我是參考nehe教程寫(xiě)的。總體來(lái)說(shuō)會(huì)簡(jiǎn)單使用了,如果想深入了解怕是非看他的document不可。
簡(jiǎn)單使用示例

FT_Library????pFTLib???????? = ?NULL;
????FT_Face????????pFTFace????????
= ?NULL;
????FT_Error????error????????
= ? 0 ;
????
// ?Init?FreeType?Lib?to?manage?memory
????error? = ?FT_Init_FreeType( & pFTLib);
????
if (error)
????
{
????????pFTLib?
= ? 0 ;
????????printf(
" There?is?some?error?when?Init?Library " );
????????
return ? - 1 ;
????}


????
// ?create?font?face?from?font?file
????error? = ?FT_New_Face(pFTLib,? " C:\\WINDOWS\\Fonts\\arial.ttf " ,? 0 ,? & pFTFace);
????
if ( ! error)
????
{
????????FT_Set_Char_Size(pFTFace,?
16 << 6 ,? 16 << 6 ,? 300 ,? 300 );
????????FT_Glyph????glyph;
????????
// ?load?glyph?'C'
????????FT_Load_Glyph(pFTFace,?FT_Get_Char_Index(pFTFace,? 67 ),?FT_LOAD_DEFAULT);
????????error?
= ?FT_Get_Glyph(pFTFace -> glyph,? & glyph);
????????
if ( ! error)
????????
{
????????????
// ?convert?glyph?to?bitmap?with?256?gray
????????????FT_Glyph_To_Bitmap( & glyph,?ft_render_mode_normal,? 0 ,? 1 );
????????????FT_BitmapGlyph????bitmap_glyph?
= ?(FT_BitmapGlyph)glyph;
????????????FT_Bitmap
& ????bitmap? = ?bitmap_glyph -> bitmap;
????????????
for ( int ?i = 0 ;?i < bitmap.rows;? ++ i)
????????????
{
????????????????
for ( int ?j = 0 ;?j < bitmap.width;? ++ j)
????????????????
{
????????????????????
// ?if?it?has?gray>0?we?set?show?it?as?1,?o?otherwise
????????????????????printf( " %d " ,?bitmap.buffer[i * bitmap.width + j] ? 1 : 0 );
????????????????}

????????????????printf(
" \n " );
????????????}

????????????
// ?free?glyph
????????????FT_Done_Glyph(glyph);
????????????glyph?
= ?NULL;
????????}

????????
// ?free?face
????????FT_Done_Face(pFTFace);
????????pFTFace?
= ?NULL;
????}


????
// ?free?FreeType?Lib
????FT_Done_FreeType(pFTLib);
????pFTLib?
= ?NULL;

posted on 2006-11-10 23:00 HUYU 閱讀(2206) 評(píng)論(5)  編輯 收藏 引用

Feedback

# re: FreeType2研究 2007-07-20 17:20 ajim

我不知道如何在vc里面添加該庫(kù),能幫我下嗎??  回復(fù)  更多評(píng)論   

# re: FreeType2研究 2007-07-20 17:24 ajim

270076805 我的qq  回復(fù)  更多評(píng)論   

# re: FreeType2研究 2007-07-20 21:52 萬(wàn)連文

這個(gè)是我寫(xiě)的哦哦  回復(fù)  更多評(píng)論   

# re: FreeType2研究 2007-12-24 12:16 秦歌

呵呵  回復(fù)  更多評(píng)論   

# re: FreeType2研究 2007-12-27 22:29 暴走小雞

有個(gè)問(wèn)題
如何裁剪ft2使得它僅支持一種字體,例如ttf.
如何使用它的緩沖子系統(tǒng)。

我的郵箱nicozsh@gmail.com  回復(fù)  更多評(píng)論   



只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品免费在线| 欧美一级视频精品观看| 小嫩嫩精品导航| 午夜一区在线| 久久都是精品| 理论片一区二区在线| 欧美mv日韩mv国产网站app| 欧美电影免费观看高清完整版| 欧美一区二区视频网站| 欧美日韩激情网| 欧美日本视频在线| 国产精品亚洲综合色区韩国| 国产亚洲欧美一区| 亚洲激情视频在线播放| 宅男噜噜噜66一区二区66| 欧美亚洲专区| 欧美激情一区二区三区成人| 99精品欧美一区二区三区综合在线| 亚洲午夜精品久久| 久久天天躁夜夜躁狠狠躁2022| 欧美国产先锋| 国产性做久久久久久| 亚洲精品视频在线观看免费| 欧美一区观看| 91久久夜色精品国产网站| 欧美激情女人20p| 亚洲一区二区3| 美女任你摸久久| 国产精品视频男人的天堂| 亚洲国产成人在线播放| 亚洲欧美综合一区| 亚洲国产高清aⅴ视频| 亚洲欧美久久久| 欧美激情综合五月色丁香小说| 国产亚洲综合在线| 亚洲一区二区三区视频| 欧美激情精品久久久久久大尺度| 午夜精品国产精品大乳美女| 欧美高潮视频| 在线观看亚洲一区| 欧美在线亚洲在线| 一二三四社区欧美黄| 蜜桃av一区二区在线观看| 国产亚洲精品bt天堂精选| 亚洲午夜激情免费视频| 亚洲国产日韩欧美| 老司机成人网| 国产综合久久| 欧美在线视频全部完| 国产精品99久久久久久久vr| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国语自产精品视频在线看8查询8| 日韩午夜在线视频| 欧美激情自拍| 美女国产一区| 国产主播喷水一区二区| 激情综合久久| 亚洲视频久久| 亚洲人成在线免费观看| 免费成人av在线| 亚洲国产精品久久久久| 老司机亚洲精品| 久久福利电影| 韩日视频一区| 麻豆成人在线| 麻豆久久精品| 日韩一级不卡| 亚洲精品午夜| 欧美视频一区二区三区四区| 99视频一区| 日韩午夜精品| 欧美四级在线观看| 亚洲伊人久久综合| 亚洲一区免费网站| 国产视频一区在线观看一区免费| 久久99在线观看| 欧美一区二区三区在线观看视频 | 国产精品丝袜久久久久久app| 亚洲一区二区三区高清| 9久草视频在线视频精品| 国产精品区一区二区三| 久久精品国产69国产精品亚洲| 欧美在线看片a免费观看| 精东粉嫩av免费一区二区三区| 免费中文字幕日韩欧美| 欧美激情视频在线免费观看 欧美视频免费一 | 国产资源精品在线观看| 免费在线一区二区| 欧美日韩精品国产| 午夜免费久久久久| 久久夜精品va视频免费观看| 亚洲精品一区在线| 亚洲视频一区二区免费在线观看| 国产一区二区三区奇米久涩| 亚洲第一福利社区| 国产精品网曝门| 欧美福利视频在线观看| 欧美三区在线观看| 老司机午夜精品| 欧美性猛片xxxx免费看久爱| 另类激情亚洲| 欧美色区777第一页| 浪潮色综合久久天堂| 欧美精品福利视频| 久久精品最新地址| 欧美日韩在线三区| 免费成人黄色av| 亚洲东热激情| 免费成人激情视频| 午夜伦欧美伦电影理论片| 久久久噜噜噜久久中文字免| 亚洲美女视频| 欧美一级欧美一级在线播放| 9色porny自拍视频一区二区| 久久九九有精品国产23| 亚洲欧美日韩国产综合| 欧美激情中文字幕一区二区| 久久人人九九| 国产伦精品一区二区三区高清版| 亚洲激情校园春色| 亚洲电影有码| 久久精品中文字幕一区| 欧美与黑人午夜性猛交久久久| 欧美日韩日本视频| 欧美激情在线播放| 亚洲国产成人porn| 久久躁日日躁aaaaxxxx| 久久久久久久综合色一本| 国产精品免费视频观看| 99人久久精品视频最新地址| 妖精视频成人观看www| 欧美国产欧美综合| 亚洲美女在线一区| 在线视频欧美精品| 欧美日韩国产经典色站一区二区三区| 欧美激情按摩在线| 亚洲欧洲日韩综合二区| 欧美77777| 亚洲福利电影| 99精品欧美| 国产精品va在线播放| 亚洲一区久久久| 久久精品视频免费观看| 在线观看免费视频综合| 免费观看日韩av| 91久久精品一区| 亚洲视频中文| 国产农村妇女精品一区二区 | 噜噜噜91成人网| 欧美福利精品| 一区二区免费看| 国产精品国产三级国产a| 亚洲欧美国产va在线影院| 在线中文字幕一区| 国产精品久久福利| 午夜伦欧美伦电影理论片| 久久蜜桃香蕉精品一区二区三区| 黑人巨大精品欧美黑白配亚洲| 久久综合狠狠综合久久综青草 | 亚洲精品免费网站| 亚洲素人在线| 国产偷国产偷精品高清尤物| 久久一区二区三区国产精品 | 欧美在线欧美在线| 嫩草影视亚洲| 99视频超级精品| 国产日韩精品在线| 久久人人爽人人爽爽久久| 亚洲茄子视频| 久久精品国产99国产精品| 亚洲国产精品成人综合色在线婷婷| 欧美国产日韩精品免费观看| 亚洲视频精选| 亚洲一区二区三区在线看| 国产一区二区福利| 免费成人av在线| 亚洲自拍偷拍福利| 欧美大成色www永久网站婷| 宅男噜噜噜66一区二区| 国模一区二区三区| 欧美另类女人| 久久久久久一区| 亚洲视频免费看| 亚洲成在线观看| 久久精品视频网| 亚洲欧美日韩精品久久久久| 亚洲国产欧美国产综合一区| 国产毛片一区二区| 欧美国产高清| 久久久欧美精品sm网站| 宅男噜噜噜66国产日韩在线观看| 久久av一区二区| 一本色道久久综合亚洲精品不卡| 国语自产精品视频在线看8查询8| 国产精品久久毛片a| 欧美日韩高清免费| 男女激情视频一区| 久久久久久一区二区| 亚洲欧美国产毛片在线| 99re这里只有精品6|