段落文字渲染引擎

2021-08-29 04:30:46 字數 720 閱讀 7428

最近在乙個專案中要渲染段落文字,找了很多文字渲染庫,發現都不能滿足我的要求,所以只能自己做。字型渲染還是找freetype完成吧,雖然小字號效果不好,不過可以生成大圖再縮小來解決掉,自己寫乙個字型渲染引擎也是不可望也不可及的事。

有了freetype實現底層字型渲染,我只需要處理一些布局方法即可,其中要實現的有以下幾點:

1、英、中字型

很多中文字型中的英文本型都比較難看,所以在x的字型配置中設定了乙個字型順序。我也可以學學,傳遞乙個字型列表,拿到乙個字元時,按順序從字型列表中查詢,查詢不到時就查下乙個字型,這樣就可以實現英、中使用不同字型了。

2、分行

段落分行要考慮到中、英文不同的分割方式,還有標點符號,某引起標點符號不能在行尾(比如「《等),某些標點不能在行首(比如」>),某些標點不能分割(比如破折號),所以實際上要有乙個分割演算法,把段落分成乙個個的標記,漢字直接分割,英文按空格分割,不能在行首的標點就分到前面單詞裡,不能在行尾的就分在後面的單詞裡。

3、對齊

對齊方式有左、中、右、兩端(full justification)這幾種方式,目前大部分開源渲染庫都不支援兩端對齊,這也是我要自己實現的主要原因。左、中、右只要計算出一行的所有字元寬度,再計算出左邊距即可。兩端對齊則需要計算每個單詞的間距。

4、段首縮排

原來設想在分段後直接加上全形空格,不想這個空格在轉成unicode編碼時,它的編碼是\u0000,不能獲取到全形空格的寬度。於是把它設成字型高度,看了一下效果還好。

段落與文字

h1 h6標題標籤的級別越高,字型越大。2 段落標籤 段落標籤 換行標籤 3 文字格式化標籤 文字格式化標籤 語義說明 strong 加強 加粗emphasized 強調 斜體cite 塊引用 斜體superscripted 上標 上標subscripted 下標 下標刪除線 underline 下...

文字與段落

1,標題文字的對齊方式 align 四級標題的右對齊效果 效果圖 二,文字格式標記 1,設定文字字型 face 設定文字的不同字型效果,設定的字型效果必須在瀏覽器中安裝了相應的字型後才可以正確瀏覽,否則這些特殊字型會被瀏覽器中的普通字型所替代。語法 應用字型的文字 face的屬性可以是乙個或者多個。...

HTML Css文字排版 字型 段落

font family 字型的型別現在一般網頁喜歡設定 微軟雅黑 如下 body 字型大小 顏色font size colorbody文字的樣式 粗體 斜體 下劃線 刪除線 縮排 行高 字間距 文字對齊 font weight bold 加粗font style italic 斜體 text dec...