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

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ú)法獲?。?/span>

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ě)的??傮w來(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 閱讀(2197) 評(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成人在线| 欧美综合国产| 欧美午夜欧美| 亚洲黑丝在线| 久久狠狠一本精品综合网| 亚洲福利久久| 欧美在线黄色| 欧美午夜理伦三级在线观看| 一区二区三区在线看| 亚洲精品在线观| 欧美在线网址| 亚洲精品123区| 久久精品二区亚洲w码| 欧美午夜精品久久久久久久| 激情久久五月| 欧美一区二区网站| 亚洲日本成人网| 久久九九有精品国产23| 国产精品亚洲美女av网站| 日韩一级黄色片| 亚洲永久免费精品| 欧美在线观看网址综合| 欧美日韩蜜桃| 亚洲黄色尤物视频| 久久蜜桃av一区精品变态类天堂| 亚洲欧洲午夜| 巨乳诱惑日韩免费av| 国产日韩一区二区三区在线播放| 一本色道久久综合狠狠躁的推荐| 麻豆免费精品视频| 欧美一区二区视频在线观看2020| 国产精品啊v在线| 夜夜爽av福利精品导航| 亚洲国产成人不卡| 欧美成年人视频网站| 亚洲第一页中文字幕| 欧美sm视频| 欧美电影电视剧在线观看| 亚洲国产成人精品女人久久久 | 在线日韩中文字幕| 久久精品国产欧美激情| 亚洲午夜精品久久久久久浪潮 | 亚洲综合社区| 一本色道久久综合亚洲精品高清| 欧美精品一区二区三区很污很色的 | 欧美成年人在线观看| 亚洲精品日日夜夜| 亚洲日本理论电影| 欧美日韩视频在线| 午夜精品三级视频福利| 欧美一级电影久久| 在线精品视频一区二区| 欧美激情片在线观看| 欧美日韩在线精品| 欧美永久精品| 久久久久一本一区二区青青蜜月| 亚洲国产精品va在线看黑人| 亚洲国产成人精品女人久久久 | 久久久青草婷婷精品综合日韩| 国产午夜精品一区二区三区视频| 久久综合一区| 欧美插天视频在线播放| 99国产精品私拍| 亚洲图中文字幕| 精品999成人| 91久久久久久| 国产欧美一区二区色老头| 久久性天堂网| 欧美激情小视频| 欧美影视一区| 欧美 日韩 国产 一区| 亚洲午夜精品久久久久久浪潮| 亚洲女爱视频在线| 亚洲黄色影院| 亚洲在线第一页| 亚洲美女毛片| 久久精品五月| 亚洲资源在线观看| 久久亚洲一区二区| 亚洲欧美中文日韩在线| 欧美成人国产一区二区| 欧美中文字幕不卡| 欧美片第一页| 欧美xx69| 国产一区在线观看视频| 亚洲美女色禁图| 在线国产亚洲欧美| 欧美一区二区高清| 亚洲视屏在线播放| 免费欧美日韩| 久久亚洲春色中文字幕久久久| 欧美午夜精品久久久久久浪潮| 免费成人高清| 狠狠色狠狠色综合人人| 亚洲中字在线| 亚洲欧美日本视频在线观看| 欧美激情综合色综合啪啪| 美日韩精品视频| 国内精品美女av在线播放| 中国av一区| 亚洲色无码播放| 欧美国产先锋| 亚洲精品乱码久久久久久日本蜜臀| 狠狠久久五月精品中文字幕| 亚洲一区二区三区在线看| 亚洲最快最全在线视频| 卡通动漫国产精品| 麻豆精品国产91久久久久久| 国产欧美一区二区精品婷婷| 一区二区激情| 亚洲一区制服诱惑| 国产精品成人一区二区艾草| 亚洲日本va午夜在线电影| 亚洲人精品午夜| 欧美精品在线免费播放| 亚洲欧洲精品一区二区三区 | 好吊成人免视频| 亚洲欧美乱综合| 亚洲欧美中文另类| 国产精品一卡二卡| 亚洲精品免费一二三区| 一区二区三区免费观看| 欧美成黄导航| 欧美专区中文字幕| 国产美女在线精品免费观看| 一区二区三区国产精品| 亚洲神马久久| 国产精品色婷婷| 欧美一区二区三区四区夜夜大片| 久久精品国产亚洲a| 国外成人免费视频| 久久久久综合网| 亚洲国产精品黑人久久久| 在线视频免费在线观看一区二区| 欧美日韩一区二区三区在线| 亚洲女同同性videoxma| 久久亚洲免费| 亚洲人线精品午夜| 国产精品久久久久久户外露出| 性色av香蕉一区二区| 美日韩精品视频| 亚洲天堂偷拍| 国产自产高清不卡| 欧美成人小视频| 亚洲在线播放电影| 欧美激情精品久久久久久免费印度| 亚洲人成免费| 国产精品另类一区| 久久青草久久| 一区二区三区精品| 久久亚洲欧美国产精品乐播| 亚洲精选一区二区| 国产精品一二三四区| 久久只有精品| 亚洲欧美日韩国产成人精品影院| 久久裸体艺术| 亚洲女性裸体视频| 伊人久久成人| 欧美三级中文字幕在线观看| 久久国产精彩视频| 亚洲精品国产精品乱码不99按摩| 欧美亚洲一级片| 亚洲精品乱码视频| 国产一区二区毛片| 欧美性色aⅴ视频一区日韩精品| 久久精品亚洲精品| 亚洲一区二区三区涩| 亚洲国产二区| 久久亚洲精选| 欧美在线一二三四区| 久久精品国产99精品国产亚洲性色| 激情视频一区二区| 国产精品无码永久免费888| 欧美成人综合一区| 久久一区二区精品| 午夜免费电影一区在线观看| 一本大道久久a久久综合婷婷 | 欧美另类videos死尸| 久久午夜精品一区二区|