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

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)用程序提供通用的字體文件訪(fǎng)問(wèn)的軟件包。尤其值得注意的以下特性:

l???????? 提供統(tǒng)一的字體文件訪(fǎ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 閱讀(2212) 評(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>
            免费在线成人| 亚洲经典在线看| 日韩手机在线导航| 亚洲精品欧美极品| 久久久久久久久久久成人| 99精品国产一区二区青青牛奶| 亚洲美女黄色| 午夜在线电影亚洲一区| 欧美日韩第一页| 一区二区三区日韩欧美| 亚洲欧美精品伊人久久| 国产精品电影在线观看| 欧美国产综合视频| 日韩视频免费在线| 国产美女精品视频| 亚洲欧美日韩国产中文在线| 亚洲欧美一区二区三区在线| 国产一区二区三区久久悠悠色av | 一本久道久久综合狠狠爱| 亚洲欧洲在线播放| 一本久道久久久| 国产欧亚日韩视频| 久久久久青草大香线综合精品| 久色婷婷小香蕉久久| 日韩视频精品在线| 欧美日本二区| 亚洲六月丁香色婷婷综合久久| 亚洲影院在线| 狠狠色综合日日| 免费看成人av| 久久阴道视频| 久久久久久久网站| 一区二区三区高清| 亚洲免费av观看| 亚洲国产一区二区三区青草影视| 久久久久久久尹人综合网亚洲| 亚洲视频免费| 亚洲欧洲99久久| 中国成人黄色视屏| 亚洲色图制服丝袜| 先锋影音国产一区| 欧美一级免费视频| 久久狠狠亚洲综合| 久久久久久亚洲精品中文字幕| 欧美中文在线观看| 久久久激情视频| 欧美va亚洲va国产综合| 亚洲国产精品热久久| 亚洲精选在线| 欧美一区二区日韩一区二区| 欧美一区午夜精品| 欧美另类在线播放| 国产日韩在线一区| 国产精品久久久久高潮| 国精产品99永久一区一区| 一区二区视频免费完整版观看| 亚洲大胆女人| 亚洲欧美日韩另类| 亚洲国产mv| 一区二区三区精品视频在线观看| 欧美一级夜夜爽| 欧美国产一区二区三区激情无套| 日韩视频精品在线| 亚洲国产日韩欧美综合久久| 在线视频亚洲| 欧美激情中文字幕乱码免费| 亚洲视频在线一区| 久久久999精品免费| 国产精品一级在线| 在线性视频日韩欧美| 亚洲国产精品va在看黑人| 亚洲一级在线观看| 欧美日韩国语| 亚洲在线观看视频| 欧美成人在线免费视频| 亚洲一二三级电影| 欧美日韩国产免费观看| 亚洲国产精品久久久久婷婷老年| 亚洲永久视频| 亚洲另类自拍| 欧美日韩精品综合在线| 日韩午夜高潮| 中文国产一区| 国产精品入口麻豆原神| 性做久久久久久| 一区二区久久| 国产精品理论片| 久久综合五月| 欧美粗暴jizz性欧美20| 一本色道久久88亚洲综合88| 亚洲成在线观看| 欧美日韩精品| 欧美一区综合| 久久免费精品日本久久中文字幕| 黄色一区二区三区四区| 欧美波霸影院| 国产精品丝袜白浆摸在线| 久久爱另类一区二区小说| 亚洲图片欧美午夜| 亚洲国产精品视频| 亚洲视频专区在线| 91久久综合| 亚洲欧美日本另类| 日韩一级黄色av| 久久久777| 欧美一区不卡| 欧美日韩1080p| 欧美aⅴ一区二区三区视频| 国产精品人成在线观看免费| 欧美freesex8一10精品| 国产日韩精品在线| 一区二区三区精品视频在线观看| 亚洲国产精选| 亚洲欧美中文字幕| 亚洲欧美成人一区二区三区| 久久女同精品一区二区| 久久成人18免费网站| 欧美四级伦理在线| 日韩亚洲欧美一区二区三区| 伊伊综合在线| 榴莲视频成人在线观看| 六月婷婷一区| 国产精品成人免费视频| av不卡在线观看| 亚洲视频图片小说| 欧美日韩中文字幕日韩欧美| 亚洲日韩欧美视频一区| 日韩视频免费看| 欧美精品在线一区| 99视频精品在线| 午夜视频一区| 在线免费观看日本欧美| 老巨人导航500精品| 欧美成人黄色小视频| 一本不卡影院| 国产一区av在线| 欧美aa在线视频| 一区二区三区精密机械公司 | 欧美精品一区三区在线观看| 宅男精品视频| 蘑菇福利视频一区播放| 亚洲国语精品自产拍在线观看| 欧美大片免费看| 亚洲一区二区精品| 久久久久久久久久久久久女国产乱| 国产精品第一页第二页第三页| 久久久久国产精品一区| 亚洲日本乱码在线观看| 欧美在线地址| 在线亚洲+欧美+日本专区| 国内成人在线| 国产精品夫妻自拍| 欧美激情按摩在线| 欧美一区国产二区| 中日韩男男gay无套| 欧美激情视频一区二区三区免费| 99在线精品免费视频九九视| 亚洲丶国产丶欧美一区二区三区| 国产精品一二一区| 国产精品v片在线观看不卡| 免费观看在线综合| 久久精品国产成人| 久久黄金**| 久久九九久久九九| 欧美一区深夜视频| 久久精品网址| 久久国产精品高清| 久久精品主播| 久久综合久久综合久久| 久久夜色精品亚洲噜噜国产mv| 久久久久久亚洲精品中文字幕| 亚洲一区二区三区免费观看 | 国产精品一区2区| 国产精品主播| 伊人久久婷婷色综合98网| 好看的日韩视频| 91久久综合| 亚洲男人的天堂在线观看| 亚洲欧美日韩国产综合在线| 午夜精品久久久99热福利| 久久久久久综合| 亚洲高清视频一区二区| 亚洲精品一线二线三线无人区| 亚洲天堂成人在线视频| 久久免费99精品久久久久久| 欧美成人精品高清在线播放| 欧美日韩国产123区| 国产亚洲一区二区精品| 亚洲国产精彩中文乱码av在线播放| 一区二区三区久久精品| 久久人人爽爽爽人久久久| 亚洲天堂免费观看| 开心色5月久久精品| 国产精品视频xxx| 亚洲婷婷综合色高清在线| 另类尿喷潮videofree | 91久久国产精品91久久性色| 夜夜精品视频一区二区| 欧美成人免费网| 欧美一区日韩一区|