本文整理匯總了Golang中code/google/com/p/freetype-go/freetype/truetype.Font.Kerning方法的典型用法代碼示例。如果您正苦於以下問題:Golang Font.Kerning方法的具體用法?Golang Font.Kerning怎麽用?Golang Font.Kerning使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類code/google/com/p/freetype-go/freetype/truetype.Font
的用法示例。
在下文中一共展示了Font.Kerning方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: printGlyph
func printGlyph(font *truetype.Font, c rune, resolution int32) {
var idx = font.Index(c)
var hm = font.HMetric(resolution, idx)
var g = truetype.NewGlyphBuf()
err := g.Load(font, resolution, idx, truetype.NoHinting)
if err != nil {
log.Println(err)
return
}
fmt.Printf("'%c' glyph\n", c)
fmt.Printf("AdvanceWidth:%d LeftSideBearing:%d\n", hm.AdvanceWidth, hm.LeftSideBearing)
printGlyphCurve(g)
c1 := 'A'
i1 := font.Index(c1)
fmt.Printf("\n'%c', '%c' Kerning:%d\n", c, c1, font.Kerning(resolution, idx, i1))
}
示例2: ExpectedSize
func ExpectedSize(font *truetype.Font, s string) (int32, int32, error) {
c := freetype.NewContext()
c.SetDPI(dpi)
c.SetFont(font)
c.SetFontSize(size)
scale := size / float64(font.FUnitsPerEm())
prev := font.Index(rune(s[0]))
width := int32(font.HMetric(font.FUnitsPerEm(), prev).AdvanceWidth)
for _, char := range s[1:] {
index := font.Index(char)
width += int32(font.Kerning(font.FUnitsPerEm(), prev, index) +
font.HMetric(font.FUnitsPerEm(), index).AdvanceWidth)
prev = index
}
width = int32(float64(width) * scale)
bounds := font.Bounds(font.FUnitsPerEm())
height := int32(float64(bounds.YMax-bounds.YMin) * scale)
return width, height, nil
}