freetype
package main
import (
"fmt"
"image"
"image/draw"
"image/png"
"os"
"github.com/golang/freetype"
)
func DrawText(text string) {
data, err := ioutil.ReadFile("/System/Library/Fonts/STHeiti Medium.ttc")
if err != nil {
panic(err)
}
f, err := freetype.ParseFont(data)
if err != nil {
panic(err)
}
dst := image.NewRGBA(image.Rect(0, 0, 800, 600))
draw.Draw(dst, dst.Bounds(), image.White, image.Point{}, draw.Src)
c := freetype.NewContext()
c.SetDst(dst)
c.SetClip(dst.Bounds())
c.SetSrc(image.Black)
c.SetFont(f)
fontSize := float64(50)
// 字体越大, 显示越大
c.SetFontSize(fontSize)
// Pt是控制起点,Pt{x,y},x表示左起点,y表示下起点,y-fontSize才是上起点
_, err = c.DrawString(text, freetype.Pt(0, int(fontSize)))
if err != nil {
panic(err)
}
pngFile, err := os.Create("draw.png")
if err != nil {
panic(err)
}
defer pngFile.Close()
err = png.Encode(pngFile, dst)
if err != nil {
panic(err)
}
}
func main() {
DrawText("中国人golang语言教程ABC122")
}