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

萬星星@豌豆莢 歡迎加入我們
一個吃軟飯的男人!!!!!我只想寫程序####
微博:http://weibo.com/wanlianwen
posts - 172,  comments - 1253,  trackbacks - 0

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

先從字體著手,FreeType字體作為一種字體文件編程開發包,廣泛易用在游戲里面。網上漢語資料比較少,只能看它的faq。翻譯了部分如下:

FreeType 2 Library

FAQ

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

1、? FreeType2 是什么?

它是一個為各種應用程序提供通用的字體文件訪問的軟件包。尤其值得注意的以下特性:

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

l???????? 提供高效反走樣的基于 256 灰度級的位圖字形的生產。

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

2、? FreeType2 能做什么?

FT2 已經易用于許多領域。例如:

l???????? 圖形子系統和文本顯示庫

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

l???????? 字體識別和轉換工具

一般來說,該庫使得你能輕松的操縱字體文件。

3、? FreeType2 不能做什么?

FT2 并不包含大量豐富的高級特性,它只定位于出色的字體服務。也就是說下面的一些特性 FT2 類庫并不直接提供支持,然而你可以以它為基礎在上層進行實現:

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

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

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

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

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

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

注意:自從 2.0.1 版本開始 FT2 提供了一個 beta 版本的緩存子系統。當然你還是可以寫自己的緩存來滿足某種特殊需求。

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

不支持文本布局操作。高級操作例如文本替換、字距調整、兩端調整等都不屬于字體服務本身職責。

4、? FreeType2 可移植性?

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

l???????? 代碼書寫遵循 ANSI C 標準

l???????? 對于各種編譯警告我們都謹慎的避免。當前代碼在很多編譯器上編譯通過且沒有產生一條警告。

l???????? 庫沒有使用任何硬編碼,是嵌入式系統開發的一個好的選擇。(例如它能夠直接在 ROM 中運行)

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

5、? FreeType2 FreeType1.x 的區別?

最大的區別就是:

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

l???????? FT2 APIs FT1 APIs 簡單且強大。

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

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

FreeType2 不直接兼容 FreeType 1.x ,但是我們可以提供一個二進制兼容層使得應用程序重鏈接到新版本。我們最終放棄了這種想法因為兩個版本可以共存在一個系統中。(沒有命名沖突)

FT2 API 1.x 簡單且強大,所以我們鼓勵你采用新版本,這樣可以使你減少很多不必要的工作。

7、? 是否可以使用 FreeType2 編輯字體或者創建新字體?

答案是明確的:不可以。因為該庫設計明確,用較少代碼和內存讀取字體文件。所以我們不打算以任何方式在字體引擎里面支持編輯或者創建功能,因為這樣將導致整個代碼重寫。這并不意味我們將來不會引入字體編輯 / 創建功能庫,這取決于需求(或者說有多少人愿意為此買單)。

在我們正式發布前不要在這方面進行揣測,對我們而言這個項目存在其他一些更重要的部分需要解決(像文字布局、文本緩存)。

編譯 & 配置

1、? 如何編譯 FreeType2 庫?

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

這里介紹最簡單的基于 VS IDE 的編譯方式。 freetype\builds\win32\visualc 下有 VC6 VC7.1 的工作區文件。 VC6 打開后直接編譯,有幾個警告。



光看或許無法到感性認識,于是來兩個demo。網上比較少,我是參考nehe教程寫的。總體來說會簡單使用了,如果想深入了解怕是非看他的document不可。
簡單使用示例

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;


截圖:

導出的文字C


示例下載

目前還不知道如何顯示漢字。

posted on 2006-11-08 14:05 萬連文 閱讀(16157) 評論(27)  編輯 收藏 引用 所屬分類: 亂七八糟

FeedBack:
# re: FreeType2研究
2006-11-08 16:43 | LOGOS
要跑到游戲領域上去?  回復  更多評論
  
# re: FreeType2研究
2006-11-08 17:38 | 萬連文
以前學習ogl很長時間,苦賴沒有機會,永遠是個業余愛好者。  回復  更多評論
  
# re: FreeType2研究
2006-11-08 23:48 | 沐楓
以前有用過ft2,但是發現,在簡體中文windowsxp下面,顯示繁體中文時,顯示位置會不對。  回復  更多評論
  
# re: FreeType2研究
2006-11-08 23:53 | 萬連文
@沐楓
希望能教下我如何顯示漢字,謝謝  回復  更多評論
  
# re: FreeType2研究
2006-11-11 12:08 | 沐楓
漢字碼是Unicode。用相應漢字的Unicode編碼,就可以取到了。  回復  更多評論
  
# re: FreeType2研究
2006-12-26 09:44 | loky
有關于freetype庫編譯的文檔嗎?有的話發我一份,有點急xusky1985@163.com  回復  更多評論
  
# re: FreeType2研究
2007-05-08 11:20 | hanyh
@沐楓
我用了漢字的Unicode編碼,但顯示的都一樣,都像一個“口”
不知道這是為什么?  回復  更多評論
  
# re: FreeType2研究
2007-05-08 15:15 | 絕對零度
Freetype初始化時,需要設定字體的編碼。你沒有設置編碼,所以顯示漢字有問題。  回復  更多評論
  
# re: FreeType2研究
2007-05-09 09:36 | hanyh
@絕對零度
能具體解釋一下怎么做嗎?
當新建一個face對象時,它不是默認選擇Unicode字符表嗎?我加了FT_Select_Charmap(pFTFace,FT_ENCODING_UNICODE)以后,還是老樣子——輸入漢字unicode編碼時,顯示的都是缺失字形  回復  更多評論
  
# re: FreeType2研究
2007-05-09 09:40 | hanyh
哦,對了,我用的是上面的那個例子  回復  更多評論
  
# re: FreeType2研究
2007-05-09 10:24 | hanyh
好了,只要字體文件包含unicode編碼就行了,把上面的arial.ttf改成arialuni.ttf就可以了  回復  更多評論
  
# re: FreeType2研究
2007-05-17 10:25 | hanyh
除了描點,還有其它好的顯示方法嗎?
字體一大,就會出現很明顯的鋸齒  回復  更多評論
  
# re: FreeType2研究
2007-05-22 15:51 | 沐楓
你得到一個“口”,估計是字體文件沒有對應的字符。
你可以用 simsun.ttf試試。  回復  更多評論
  
# re: FreeType2研究
# re: FreeType2研究
2007-08-17 15:34 | 萬連文
FT_Error error = 0;
error = FT_Init_FreeType(&m_pFTLib);
if(error)
{
m_pFTLib = NULL;
TRACE(_T("There is some error when Init Library..."));
return;
}

error = FT_New_Face(m_pFTLib, "C:\\WINDOWS\\Fonts\\SIMSUN.TTC", 0, &m_pFTFace);
if(error)
{
m_pFTFace = NULL;
TRACE(_T("There is some error when New Face..."));
return;
}
FT_Set_Char_Size(m_pFTFace, 12<<6, 12<<6, 500, 500);




FT_Glyph glyph = NULL;
FT_Error error = 0;
FT_Select_Charmap(m_pFTFace, FT_ENCODING_UNICODE);
error = FT_Load_Glyph(m_pFTFace, FT_Get_Char_Index(m_pFTFace, L'啊'), FT_LOAD_DEFAULT);
if(!error)
{
error = FT_Get_Glyph(m_pFTFace->glyph, &glyph);
if(!error)
{
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)
{
for(int k=0; k<m_iZoom; ++k)
{
for(int l=0; l<m_iZoom; ++l)
{
pDC->SetPixel(CPoint(100+j*m_iZoom+l, 100+i*m_iZoom+k), bitmap.buffer[i*bitmap.width+j]);
}
}
}
}
FT_Done_Glyph(glyph);
glyph = NULL;
}
}
  回復  更多評論
  
# re: FreeType2研究 c#如何使用
2007-10-25 17:52 | JJJJ
在C#中如何度取truetype中數據.
1 .直接分析文件,從開始做起
2.采用API函數
3.采用freetype
但是第2,和第3
不知道怎么用!
第二是,參數不知道怎么定義.
第3 是:不知道如何使用
請高手幫忙???
給點代碼  回復  更多評論
  
# re: FreeType2研究
2008-09-22 17:56 | Condor
好像現在官方有FOR C#版的。  回復  更多評論
  
# re: FreeType2研究
2008-10-29 19:41 | 小不點
freetype有oblique, italic, bold, underline,等的style么?  回復  更多評論
  
# re: FreeType2研究[未登錄]
2008-10-29 23:35 | 萬連文
按照我的理解,這個應該屬于字體類型。 FF作為字體管理庫應該不會實現。  回復  更多評論
  
# re: FreeType2研究
2008-11-21 16:31 | 陳衛
很好很強大 謝謝了 找了4天了 終于找到一個完整的demo   回復  更多評論
  
# re: FreeType2研究
2008-11-21 18:07 | test
樓上的,我也在弄FreeType2的東西,能給個郵件嗎,遇到問題大家一起討論一下。
目前我的問題是,為什么我用2.3.7/build/win32/下2005的工程編譯的lib不能用,鏈接時候報錯.
而我下載的FreeType2 Win32的工程里面的lib就可以?  回復  更多評論
  
# re: FreeType2研究
2009-10-09 17:04 | null
@小不點
freetype有oblique, italic, bold, underline,等的style么?

都有,還有anti-aliasing  回復  更多評論
  
# re: FreeType2研究
2010-06-04 17:16 | 路過
@hanyh
你應該使用一個中文字體  回復  更多評論
  
# re: FreeType2研究
2011-05-08 20:30 | 畢達哥拉斯半圓
正好要做這方面的工作,謝謝樓主,先收藏下,回頭交流  回復  更多評論
  
# re: FreeType2研究
2013-04-06 15:17 | sgf
博主不行啊。。。。。這簡直都算不上研究。。。。。
有沒有興趣分析分析freetype的源代碼啊。。。  回復  更多評論
  
# re: FreeType2研究
2013-04-24 10:30 | hquu
請問有誰能在WINXP里面安裝ming呢
有勞酬謝  回復  更多評論
  
# re: FreeType2研究
2013-04-24 10:31 | hquu
請問有誰能在WINXP里面安裝ming呢
有勞酬謝

ming 好像要裝freetype
我不會裝

我的QQ :369772066  回復  更多評論
  
簡歷下載
聯系我

<2006年11月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用鏈接

留言簿(66)

隨筆分類

隨筆檔案

相冊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美在线视频在线播放完整版免费观看 | 亚洲视频在线观看网站| 欧美日韩另类字幕中文| 中日韩高清电影网| 欧美一区=区| 亚洲人成艺术| 欧美午夜精品久久久久久人妖 | 国语自产精品视频在线看8查询8| 欧美一区影院| 亚洲毛片在线| 欧美大片免费| 久久精品国产2020观看福利| 亚洲黄色一区| 国产自产高清不卡| 欧美日本视频在线| 久久综合狠狠综合久久综青草| 亚洲国产一区二区精品专区| 久久大综合网| 亚洲一区二区少妇| 亚洲欧洲精品一区二区三区不卡| 国产亚洲精品自拍| 国产精品日日摸夜夜摸av| 欧美激情一区二区| 欧美成人精品三级在线观看 | 一区二区三区四区五区精品视频 | 久久久噜噜噜久久人人看| 亚洲自拍三区| 一区二区激情视频| 日韩视频三区| 99视频一区| 亚洲一区亚洲| 性色av一区二区三区红粉影视| 亚洲一本大道在线| 亚洲欧美一区二区原创| 亚洲一级一区| 久久精品视频在线免费观看| 欧美主播一区二区三区美女 久久精品人| 亚洲影院在线观看| 欧美在线观看一区二区| 午夜日韩福利| 美玉足脚交一区二区三区图片| 欧美ed2k| 国产欧美一区二区精品性| 欧美精品一区二区蜜臀亚洲| 欧美激情视频网站| 欧美日韩精品是欧美日韩精品| 欧美高清日韩| 欧美精品福利在线| 国产精品区一区| 樱花yy私人影院亚洲| 一区二区三区鲁丝不卡| 久久久999精品免费| 亚洲国产日韩欧美在线动漫| 亚洲午夜激情在线| 欧美xx视频| 国内精品久久久久影院优 | 欧美伊人久久| 亚洲精品乱码久久久久| 午夜在线观看欧美| 欧美日韩午夜剧场| 韩日视频一区| 久久九九热免费视频| 最近中文字幕日韩精品| 久久免费的精品国产v∧| 国产精品一区二区在线| 午夜视频精品| 亚洲小说欧美另类社区| 国产精品久久国产三级国电话系列| 亚洲自拍偷拍网址| 老鸭窝亚洲一区二区三区| 欧美成人xxx| 亚洲精品乱码久久久久久黑人| 亚洲图片在线| 久久精品综合一区| 久久成人18免费观看| 欧美影院在线播放| 国产午夜亚洲精品羞羞网站| 亚洲人屁股眼子交8| 亚洲欧美激情视频| 夜夜嗨网站十八久久| 欧美三级乱码| 亚洲女爱视频在线| 亚洲女女女同性video| 国产精品一区免费在线观看| 香港成人在线视频| 午夜视频在线观看一区| 国内精品久久久久影院薰衣草| 欧美综合国产| 免费成人av在线| 亚洲专区欧美专区| 久久国内精品视频| 亚洲精品久久久久| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美日韩国产专区| 久久婷婷国产综合国色天香| 美女视频网站黄色亚洲| 一区二区三区鲁丝不卡| 欧美成va人片在线观看| 欧美激情一区二区三级高清视频| 国产婷婷色一区二区三区| 亚洲视频欧美在线| 亚洲一区二区三区在线观看视频| 久久全球大尺度高清视频| 午夜精品久久久久久久| 欧美日韩日本视频| aa级大片欧美| 久久久精品午夜少妇| 国产一区二区三区最好精华液| 日韩午夜三级在线| 亚洲一区二区精品在线观看| 国产精品乱码久久久久久| 亚洲精选一区二区| 亚洲一区二区黄色| 欧美日本二区| 一区二区三区 在线观看视| 亚洲视频在线观看视频| 欧美黄网免费在线观看| 亚洲老板91色精品久久| 一区二区三区视频在线| 国产精品中文字幕欧美| 免费成人小视频| 亚洲精品国产精品乱码不99| 亚洲主播在线播放| 国产午夜精品视频| 久久免费的精品国产v∧| 亚洲精品乱码久久久久久蜜桃91 | 欧美在线视频一区二区| 精品成人一区二区| 欧美伦理影院| 亚洲欧美在线免费观看| 欧美成在线视频| 亚洲深夜福利在线| 伊大人香蕉综合8在线视| 久久午夜激情| 午夜宅男久久久| 亚洲精品视频啊美女在线直播| 久久国产精品一区二区三区四区| 亚洲最新视频在线| 在线看一区二区| 国产一区二区三区免费不卡| 欧美日韩免费精品| 午夜在线a亚洲v天堂网2018| 亚洲欧美激情一区二区| 亚洲综合精品自拍| 亚洲美女精品成人在线视频| 亚洲精品在线观看免费| 亚洲精品美女久久久久| 性久久久久久久久| 一区二区三区免费在线观看| 亚洲成人在线视频网站| 国产一区视频网站| 国产精品成人国产乱一区| 欧美日韩中字| 国产日韩免费| 在线日韩日本国产亚洲| 国产欧亚日韩视频| 海角社区69精品视频| 揄拍成人国产精品视频| 亚洲精品永久免费| 99视频精品| 一区二区三区高清不卡| 亚洲中午字幕| 久久婷婷成人综合色| 亚洲午夜影视影院在线观看| 久久国产手机看片| 欧美亚洲一区三区| 免费日韩成人| 亚洲乱码国产乱码精品精可以看| 亚洲一区欧美一区| 久久蜜桃av一区精品变态类天堂| 老司机午夜精品视频| 国产精品高精视频免费| 国产一区二区电影在线观看| 亚洲国产午夜| 久久久99免费视频| 一区二区三区高清不卡| 久久视频精品在线| 国产婷婷色综合av蜜臀av| 一区二区三区毛片| 欧美高清一区| 亚洲永久在线| 国产精品v欧美精品v日本精品动漫 | 亚洲女性裸体视频| 久久中文在线| 亚洲第一伊人| 久久国产天堂福利天堂| 亚洲视频在线观看网站| 欧美大片18| 亚洲经典视频在线观看| 欧美大片一区二区| 久久影视精品| 亚洲精品欧美极品| 欧美国产激情二区三区| 亚洲一区二区欧美| 国产精品一页| 免费人成精品欧美精品| 欧美暴力喷水在线| 亚洲一区bb| 欧美尤物巨大精品爽| 亚洲黄网站黄|