package main import ( "github.com/golang/freetype" "image" "image/color" "image/png" "io/ioutil" "log" "os" ) func main() { //圖片的寬度 srcWidth := 200 //圖片的高度 srcHeight := 200 imgfile, _ := os.Create("out.png") defer imgfile.Close() img := image.NewRGBA(image.Rect(0, 0, srcWidth, srcHeight)) //爲背景圖片設置顏色 for y := 0; y < srcWidth; y++ { for x := 0; x < srcHeight; x++ { img.Set(x, y, color.RGBA{255, 255, 255, 255}) } } //讀取字體數據 http://fonts.mobanwang.com/201503/12436.html fontBytes, err := ioutil.ReadFile("./public/xiawucha.ttf") if err != nil { log.Println(err) } //載入字體數據 font, err := freetype.ParseFont(fontBytes) if err != nil { log.Println("載入字體失敗", err) } f := freetype.NewContext() //設置分辨率 f.SetDPI(100) //設置字體 f.SetFont(font) //設置尺寸 f.SetFontSize(26) f.SetClip(img.Bounds()) //設置輸出的圖片 f.SetDst(img) //設置字體顏色(紅色) f.SetSrc(image.NewUniform(color.RGBA{255, 0, 0, 255})) //設置字體的位置 pt := freetype.Pt(20, 40) _, err = f.DrawString("hello,你好", pt) if err != nil { log.Fatal(err) } //以png 格式寫入文件 err = png.Encode(imgfile, img) if err != nil { log.Fatal(err) } }