2013-07-25 63 views
0

These docs說:如何計算每對字母的字距?

目前尚無法檢索從SDL_ttf一對字符的字距方法,但是正確的字距將被應用在文本串呈現的,而不是單獨的字形。

但是,我想先將所有字形渲染到紋理,然後單獨渲染它們,這樣我就不會始終重新創建紋理。

使用TTF_GlyphMetrics和朋友我可以得到除了字距之外所需的所有信息。

我對字體沒有專業知識,但this article解釋了kerning很好。據我瞭解,字距只取決於兩個相鄰的字母,因此要獲得整個字體的所有字距值,需要大約26個字母* 2(上/下)+〜10個符號,平方= 3844個值=大約15 kB的數據,這似乎足夠小,可以緩存。

那麼,我怎樣才能得到每對字母的字距?如果他們在內部進行,這一定是可能的。

+0

可能有更多的線對比你想象的要多。 ASCII有大約100個可打印的字符,並且大多數字體都有。儘管如此,在現代計算機上,即使是大小適合一個字節的1M對,也不是什麼大問題。 – ugoren

+0

@ugoren:我不知道我會盡可能使用所有可打印的字符,只是那些可能會使用的字符。雖然可能使其可配置。 – mpen

回答

0

您是否檢查過Kerning.js?有許多字母和字母特定的js解決方案來手動調整激烈程度,所以也許你可以這樣看待? 在Kerning.js中,我知道您可以爲字母對或整個文本設置特定的比例。對特別有趣,因爲有些角色不應該有相同的字距(例如VA - 比IA更低的字距,使字符看起來更接近彼此)。 我不知道它是否有幫助,希望如此!

+0

不要認爲這會幫助我。字距數據在哪裏? – mpen

+0

您設置了字距數據,如果您沒有手動設置,我不知道如何檢索它。通常人們希望設置kernings,而不是獲取默認kernings的值,所以我不知道。但是,如果你手動設置字距,你將會得到確切的值。 –

+0

對,我的問題是關於獲取數據。我當然不會爲每個我想要使用的字體計算3844個字形對的像素數。 – mpen