🚀 优化字体加载

This commit is contained in:
源文雨 2023-02-10 14:59:27 +08:00
parent ca89f01f7d
commit 2e51c9e9c3
11 changed files with 70 additions and 71 deletions

8
go.mod
View File

@ -6,13 +6,13 @@ require (
github.com/Baidu-AIP/golang-sdk v1.1.1 github.com/Baidu-AIP/golang-sdk v1.1.1
github.com/FloatTech/AnimeAPI v1.6.1-0.20230207081411-573533b18194 github.com/FloatTech/AnimeAPI v1.6.1-0.20230207081411-573533b18194
github.com/FloatTech/floatbox v0.0.0-20230207075003-0f70b30c320d github.com/FloatTech/floatbox v0.0.0-20230207075003-0f70b30c320d
github.com/FloatTech/gg v1.1.1 github.com/FloatTech/gg v1.1.2
github.com/FloatTech/imgfactory v0.2.1 github.com/FloatTech/imgfactory v0.2.2-0.20230210061338-8185b8d2530d
github.com/FloatTech/rendercard v0.0.9 github.com/FloatTech/rendercard v0.0.10-0.20230210063120-3f20c031c9c7
github.com/FloatTech/sqlite v1.5.7 github.com/FloatTech/sqlite v1.5.7
github.com/FloatTech/ttl v0.0.0-20220715042055-15612be72f5b github.com/FloatTech/ttl v0.0.0-20220715042055-15612be72f5b
github.com/FloatTech/zbpctrl v1.5.3-0.20230130095145-714ad318cd52 github.com/FloatTech/zbpctrl v1.5.3-0.20230130095145-714ad318cd52
github.com/FloatTech/zbputils v1.6.2-0.20230207084008-8c14cb9fcacb github.com/FloatTech/zbputils v1.6.2-0.20230210063414-98b00b2c58a2
github.com/RomiChan/syncx v0.0.0-20221202055724-5f842c53020e github.com/RomiChan/syncx v0.0.0-20221202055724-5f842c53020e
github.com/RomiChan/websocket v1.4.3-0.20220227141055-9b2c6168c9c5 github.com/RomiChan/websocket v1.4.3-0.20220227141055-9b2c6168c9c5
github.com/antchfx/htmlquery v1.2.5 github.com/antchfx/htmlquery v1.2.5

16
go.sum
View File

@ -6,20 +6,20 @@ github.com/FloatTech/AnimeAPI v1.6.1-0.20230207081411-573533b18194 h1:+p85V0fdZN
github.com/FloatTech/AnimeAPI v1.6.1-0.20230207081411-573533b18194/go.mod h1:LCiKZivPVazRRCnnADQfIBFZiIPHHCFqaCpwZWsFehI= github.com/FloatTech/AnimeAPI v1.6.1-0.20230207081411-573533b18194/go.mod h1:LCiKZivPVazRRCnnADQfIBFZiIPHHCFqaCpwZWsFehI=
github.com/FloatTech/floatbox v0.0.0-20230207075003-0f70b30c320d h1:vVqMO5Kejt5pueuZvBxfX+psa7UwE110TpITf5eV7Zw= github.com/FloatTech/floatbox v0.0.0-20230207075003-0f70b30c320d h1:vVqMO5Kejt5pueuZvBxfX+psa7UwE110TpITf5eV7Zw=
github.com/FloatTech/floatbox v0.0.0-20230207075003-0f70b30c320d/go.mod h1:OoZE4Ra7olpFaJSrlD6mcyT4chPLg9QBRE1pzTC8R84= github.com/FloatTech/floatbox v0.0.0-20230207075003-0f70b30c320d/go.mod h1:OoZE4Ra7olpFaJSrlD6mcyT4chPLg9QBRE1pzTC8R84=
github.com/FloatTech/gg v1.1.1 h1:pY6spOq9QMVSkL1rvrMx/dMIvtwtYZcyb9Phs7AA9Rc= github.com/FloatTech/gg v1.1.2 h1:YolgOYg3uDHc1+g0bLtt6QuRA/pvLn+b9IBCIhOOX88=
github.com/FloatTech/gg v1.1.1/go.mod h1:uzPzAeT35egARdRuu+1oyjU3CmTwCceoq3Vvje7LpcI= github.com/FloatTech/gg v1.1.2/go.mod h1:uzPzAeT35egARdRuu+1oyjU3CmTwCceoq3Vvje7LpcI=
github.com/FloatTech/imgfactory v0.2.1 h1:XoVwy0Xu0AvTRtzlhv5teZcuZlAcHrYjeQ8MynJ/zlk= github.com/FloatTech/imgfactory v0.2.2-0.20230210061338-8185b8d2530d h1:IXMCRBkhSksAkhEJgDtC1KxiDii3cSrnZ+nQtSLRaK0=
github.com/FloatTech/imgfactory v0.2.1/go.mod h1:QBJKHbzpE+x/9Wn7mXebWap/K/xUJSjgiaelAElwU9Q= github.com/FloatTech/imgfactory v0.2.2-0.20230210061338-8185b8d2530d/go.mod h1:el5hGpj1C1bDRxcTXYRwEivDCr40zZeJpcrLrB1fajs=
github.com/FloatTech/rendercard v0.0.9 h1:t4kKcVXfX6SZ/elzAIs8Q8X4Oc+fdtfFHQCeCR0xGqY= github.com/FloatTech/rendercard v0.0.10-0.20230210063120-3f20c031c9c7 h1:Ui9R1jmTJPYfbNAXqOOX+15UTiH+UB7bRIVOL461YGY=
github.com/FloatTech/rendercard v0.0.9/go.mod h1:mWOh29JXJqrHFts9ZgpYZCCYw+69yYQkP5dD5Fpxftg= github.com/FloatTech/rendercard v0.0.10-0.20230210063120-3f20c031c9c7/go.mod h1:SMhrbJNjmPkcapO1vSGcEheLQzwgsvHKV9VIGOYBAtw=
github.com/FloatTech/sqlite v1.5.7 h1:Bvo4LSojcZ6dVtbHrkqvt6z4v8e+sj0G5PSUIvdawsk= github.com/FloatTech/sqlite v1.5.7 h1:Bvo4LSojcZ6dVtbHrkqvt6z4v8e+sj0G5PSUIvdawsk=
github.com/FloatTech/sqlite v1.5.7/go.mod h1:zFbHzRfB+CJ+VidfjuVbrcin3DAz283F7hF1hIeHzpY= github.com/FloatTech/sqlite v1.5.7/go.mod h1:zFbHzRfB+CJ+VidfjuVbrcin3DAz283F7hF1hIeHzpY=
github.com/FloatTech/ttl v0.0.0-20220715042055-15612be72f5b h1:tvciXWq2nuvTbFeJGLDNIdRX3BI546D3O7k7vrVueZw= github.com/FloatTech/ttl v0.0.0-20220715042055-15612be72f5b h1:tvciXWq2nuvTbFeJGLDNIdRX3BI546D3O7k7vrVueZw=
github.com/FloatTech/ttl v0.0.0-20220715042055-15612be72f5b/go.mod h1:fHZFWGquNXuHttu9dUYoKuNbm3dzLETnIOnm1muSfDs= github.com/FloatTech/ttl v0.0.0-20220715042055-15612be72f5b/go.mod h1:fHZFWGquNXuHttu9dUYoKuNbm3dzLETnIOnm1muSfDs=
github.com/FloatTech/zbpctrl v1.5.3-0.20230130095145-714ad318cd52 h1:BrStRXeosWh8L0iA/EjPd8w6xNexDkqki39ITZko/9Q= github.com/FloatTech/zbpctrl v1.5.3-0.20230130095145-714ad318cd52 h1:BrStRXeosWh8L0iA/EjPd8w6xNexDkqki39ITZko/9Q=
github.com/FloatTech/zbpctrl v1.5.3-0.20230130095145-714ad318cd52/go.mod h1:qqMLUwR7tKpqnAqsgI7aZbn0hbs2FEVF4ylMXqIpBdY= github.com/FloatTech/zbpctrl v1.5.3-0.20230130095145-714ad318cd52/go.mod h1:qqMLUwR7tKpqnAqsgI7aZbn0hbs2FEVF4ylMXqIpBdY=
github.com/FloatTech/zbputils v1.6.2-0.20230207084008-8c14cb9fcacb h1:kykXPttDCbm/o63mp8GGbLJTvXJaxI/J0akB3XSkP+0= github.com/FloatTech/zbputils v1.6.2-0.20230210063414-98b00b2c58a2 h1:yCbXT2gpR0tN5oGqN12pryPbaE0pOw8clo+70GR1muE=
github.com/FloatTech/zbputils v1.6.2-0.20230207084008-8c14cb9fcacb/go.mod h1:Ekq++wMLm0jy9YcdCvQ7JbpypyIL1GGCvLIxPbEwqlE= github.com/FloatTech/zbputils v1.6.2-0.20230210063414-98b00b2c58a2/go.mod h1:2MmdWq7AiRNhh3rOW09oOofPCyVMazhh71oi5PItysc=
github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
github.com/RomiChan/syncx v0.0.0-20221202055724-5f842c53020e h1:wR3MXQ3VbUlPKOOUwLOYgh/QaJThBTYtsl673O3lqSA= github.com/RomiChan/syncx v0.0.0-20221202055724-5f842c53020e h1:wR3MXQ3VbUlPKOOUwLOYgh/QaJThBTYtsl673O3lqSA=
github.com/RomiChan/syncx v0.0.0-20221202055724-5f842c53020e/go.mod h1:vD7Ra3Q9onRtojoY5sMCLQ7JBgjUsrXDnDKyFxqpf9w= github.com/RomiChan/syncx v0.0.0-20221202055724-5f842c53020e/go.mod h1:vD7Ra3Q9onRtojoY5sMCLQ7JBgjUsrXDnDKyFxqpf9w=

View File

@ -187,11 +187,11 @@ func init() {
canvas.DrawImage(back, 0, 0) canvas.DrawImage(back, 0, 0)
} }
canvas.SetColor(color.Black) canvas.SetColor(color.Black)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
ctx.SendChain(message.Text("ERROR: ", err)) ctx.SendChain(message.Text("ERROR: ", err))
} }
if err = canvas.LoadFontFace(text.BoldFontFile, fontSize); err != nil { if err = canvas.ParseFontFace(data, fontSize); err != nil {
ctx.SendChain(message.Text("ERROR: ", err)) ctx.SendChain(message.Text("ERROR: ", err))
return return
} }
@ -324,11 +324,11 @@ func init() {
} }
canvas := gg.NewContext(100, 100) canvas := gg.NewContext(100, 100)
fontSize := 50.0 fontSize := 50.0
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
ctx.SendChain(message.Text("ERROR: ", err)) ctx.SendChain(message.Text("ERROR: ", err))
} }
if err = canvas.LoadFontFace(text.BoldFontFile, fontSize); err != nil { if err = canvas.ParseFontFace(data, fontSize); err != nil {
ctx.SendChain(message.Text("ERROR: ", err)) ctx.SendChain(message.Text("ERROR: ", err))
return return
} }
@ -347,7 +347,7 @@ func init() {
canvas.SetColor(color.White) canvas.SetColor(color.White)
canvas.Clear() canvas.Clear()
canvas.SetColor(color.Black) canvas.SetColor(color.Black)
if err = canvas.LoadFontFace(text.BoldFontFile, fontSize); err != nil { if err = canvas.ParseFontFace(data, fontSize); err != nil {
ctx.SendChain(message.Text("ERROR: ", err)) ctx.SendChain(message.Text("ERROR: ", err))
return return
} }

View File

@ -76,11 +76,11 @@ func tagurl(name, u string) (im image.Image, st *sorttags, err error) {
st = newsorttags(tags) st = newsorttags(tags)
sort.Sort(st) sort.Sort(st)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) boldfd, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
return return
} }
_, err = file.GetLazyData(text.ConsolasFontFile, control.Md5File, true) consfd, err := file.GetLazyData(text.ConsolasFontFile, control.Md5File, true)
if err != nil { if err != nil {
return return
} }
@ -100,13 +100,13 @@ func tagurl(name, u string) (im image.Image, st *sorttags, err error) {
canvas.SetRGB(1, 1, 1) canvas.SetRGB(1, 1, 1)
canvas.Clear() canvas.Clear()
canvas.DrawImage(img, 0, 0) canvas.DrawImage(img, 0, 0)
if err = canvas.LoadFontFace(text.BoldFontFile, float64(img.Bounds().Size().X)*0.1); err != nil { if err = canvas.ParseFontFace(boldfd, float64(img.Bounds().Size().X)*0.1); err != nil {
return return
} }
canvas.SetRGB(0, 0, 0) canvas.SetRGB(0, 0, 0)
canvas.DrawString(name, float64(img.Bounds().Size().X)*0.02, float64(img.Bounds().Size().Y)+float64(img.Bounds().Size().X)*0.1) canvas.DrawString(name, float64(img.Bounds().Size().X)*0.02, float64(img.Bounds().Size().Y)+float64(img.Bounds().Size().X)*0.1)
i := float64(img.Bounds().Size().Y) + float64(img.Bounds().Size().X)*0.2 i := float64(img.Bounds().Size().Y) + float64(img.Bounds().Size().X)*0.2
if err = canvas.LoadFontFace(text.ConsolasFontFile, float64(img.Bounds().Size().X)*0.04); err != nil { if err = canvas.ParseFontFace(consfd, float64(img.Bounds().Size().X)*0.04); err != nil {
return return
} }
rate := float64(img.Bounds().Size().X) * 0.04 rate := float64(img.Bounds().Size().X) * 0.04

View File

@ -32,8 +32,6 @@ const (
images = "data/Fortune/" images = "data/Fortune/"
// 基础文件位置 // 基础文件位置
omikujson = "data/Fortune/text.json" omikujson = "data/Fortune/text.json"
// 字体文件位置
font = "data/Font/sakura.ttf"
// 生成图缓存位置 // 生成图缓存位置
cache = images + "cache/" cache = images + "cache/"
) )
@ -100,11 +98,12 @@ func init() {
ctx.SendChain(message.Text("ERROR: ", err)) ctx.SendChain(message.Text("ERROR: ", err))
return false return false
} }
_, err = file.GetLazyData(font, control.Md5File, true) fontdata, err := file.GetLazyData("data/Font/sakura.ttf", control.Md5File, true)
if err != nil { if err != nil {
ctx.SendChain(message.Text("ERROR: ", err)) ctx.SendChain(message.Text("ERROR: ", err))
return false return false
} }
ctx.State["fontdata"] = fontdata
return true return true
}, },
)).Limit(ctxext.LimitByGroup).SetBlock(true). )).Limit(ctxext.LimitByGroup).SetBlock(true).
@ -150,7 +149,7 @@ func init() {
if err != nil { if err != nil {
return err return err
} }
_, err = draw(background, title, text, f) _, err = draw(background, ctx.State["fontdata"].([]byte), title, text, f)
_ = f.Close() _ = f.Close()
return err return err
}, ctxext.Send(ctx), ctxext.GetMessage(ctx)) }, ctxext.Send(ctx), ctxext.GetMessage(ctx))
@ -189,19 +188,19 @@ func randimage(path string, ctx *zero.Ctx) (im image.Image, index int, err error
// @param title 签名 // @param title 签名
// @param text 签文 // @param text 签文
// @return 错误信息 // @return 错误信息
func draw(back image.Image, title, txt string, f io.Writer) (int64, error) { func draw(back image.Image, fontdata []byte, title, txt string, f io.Writer) (int64, error) {
canvas := gg.NewContext(back.Bounds().Size().Y, back.Bounds().Size().X) canvas := gg.NewContext(back.Bounds().Size().Y, back.Bounds().Size().X)
canvas.DrawImage(back, 0, 0) canvas.DrawImage(back, 0, 0)
// 写标题 // 写标题
canvas.SetRGB(1, 1, 1) canvas.SetRGB(1, 1, 1)
if err := canvas.LoadFontFace(font, 45); err != nil { if err := canvas.ParseFontFace(fontdata, 45); err != nil {
return -1, err return -1, err
} }
sw, _ := canvas.MeasureString(title) sw, _ := canvas.MeasureString(title)
canvas.DrawString(title, 140-sw/2, 112) canvas.DrawString(title, 140-sw/2, 112)
// 写正文 // 写正文
canvas.SetRGB(0, 0, 0) canvas.SetRGB(0, 0, 0)
if err := canvas.LoadFontFace(font, 23); err != nil { if err := canvas.ParseFontFace(fontdata, 23); err != nil {
return -1, err return -1, err
} }
tw, th := canvas.MeasureString("测") tw, th := canvas.MeasureString("测")

View File

@ -1416,11 +1416,11 @@ func alwaysDoGif(cc *context, value ...string) (string, error) {
} }
canvas := gg.NewContext(500, 600) canvas := gg.NewContext(500, 600)
canvas.SetColor(color.Black) canvas.SetColor(color.Black)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
return "", err return "", err
} }
err = canvas.LoadFontFace(text.BoldFontFile, 40) err = canvas.ParseFontFace(data, 40)
if err != nil { if err != nil {
return "", err return "", err
} }
@ -1438,7 +1438,7 @@ func alwaysDoGif(cc *context, value ...string) (string, error) {
canvas := gg.NewContext(500, 600) canvas := gg.NewContext(500, 600)
canvas.DrawImage(f.Image(), 0, 0) canvas.DrawImage(f.Image(), 0, 0)
canvas.SetColor(color.Black) canvas.SetColor(color.Black)
_ = canvas.LoadFontFace(text.BoldFontFile, 40) // _ = canvas.ParseFontFace(data, 40)
canvas.DrawString(arg, 280-l, 560) canvas.DrawString(arg, 280-l, 560)
canvas.DrawImage(imgfactory.Size(f.Image(), 90, 90).Image(), 280, 505) canvas.DrawImage(imgfactory.Size(f.Image(), 90, 90).Image(), 280, 505)
canvas.DrawString("吗", 370, 560) canvas.DrawString("吗", 370, 560)

View File

@ -277,11 +277,11 @@ func anyasuki(cc *context, args ...string) (string, error) {
canvas.DrawImage(imgfactory.Size(face, 347, 267).Image(), 82, 53) canvas.DrawImage(imgfactory.Size(face, 347, 267).Image(), 82, 53)
canvas.DrawImage(back, 0, 0) canvas.DrawImage(back, 0, 0)
canvas.SetColor(color.Black) canvas.SetColor(color.Black)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
return "", err return "", err
} }
if err = canvas.LoadFontFace(text.BoldFontFile, 30); err != nil { if err = canvas.ParseFontFace(data, 30); err != nil {
return "", err return "", err
} }
if args[0] == "" { if args[0] == "" {
@ -323,11 +323,11 @@ func alwaysLike(cc *context, args ...string) (string, error) {
canvas.DrawImage(back, 0, 0) canvas.DrawImage(back, 0, 0)
canvas.DrawImage(imgfactory.Size(face, 380, 380).Image(), 44, 74) canvas.DrawImage(imgfactory.Size(face, 380, 380).Image(), 44, 74)
canvas.SetColor(color.Black) canvas.SetColor(color.Black)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
return "", err return "", err
} }
if err = canvas.LoadFontFace(text.BoldFontFile, 56); err != nil { if err = canvas.ParseFontFace(data, 56); err != nil {
return "", err return "", err
} }
if args[0] == "" { if args[0] == "" {
@ -437,11 +437,11 @@ func universal(cc *context, args ...string) (string, error) {
canvas := gg.NewContext(500, 550) canvas := gg.NewContext(500, 550)
canvas.DrawImage(imgfactory.Size(face, 500, 500).Image(), 0, 0) canvas.DrawImage(imgfactory.Size(face, 500, 500).Image(), 0, 0)
canvas.SetColor(color.Black) canvas.SetColor(color.Black)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
return "", err return "", err
} }
if err = canvas.LoadFontFace(text.BoldFontFile, 40); err != nil { if err = canvas.ParseFontFace(data, 40); err != nil {
return "", err return "", err
} }
if args[0] == "" { if args[0] == "" {
@ -488,11 +488,11 @@ func interview(cc *context, args ...string) (string, error) {
canvas.DrawImage(huaji, 376, 50) canvas.DrawImage(huaji, 376, 50)
canvas.DrawImage(microphone, 300, 50) canvas.DrawImage(microphone, 300, 50)
canvas.SetColor(color.Black) canvas.SetColor(color.Black)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
return "", err return "", err
} }
if err = canvas.LoadFontFace(text.BoldFontFile, 40); err != nil { if err = canvas.ParseFontFace(data, 40); err != nil {
return "", err return "", err
} }
if args[0] == "" { if args[0] == "" {
@ -646,11 +646,11 @@ func playGame(cc *context, args ...string) (string, error) {
canvas.DrawImage(imgfactory.Rotate(face, 10, 225, 160).Image(), 161, 117) canvas.DrawImage(imgfactory.Rotate(face, 10, 225, 160).Image(), 161, 117)
canvas.DrawImage(back, 0, 0) canvas.DrawImage(back, 0, 0)
canvas.SetColor(color.Black) canvas.SetColor(color.Black)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
return "", err return "", err
} }
if err = canvas.LoadFontFace(text.BoldFontFile, 40); err != nil { if err = canvas.ParseFontFace(data, 40); err != nil {
return "", err return "", err
} }
if args[0] == "" { if args[0] == "" {
@ -776,11 +776,11 @@ func safeSense(cc *context, args ...string) (string, error) {
canvas.DrawImage(back, 0, 0) canvas.DrawImage(back, 0, 0)
canvas.DrawImage(imgfactory.Size(face, 215, 343).Image(), 215, 135) canvas.DrawImage(imgfactory.Size(face, 215, 343).Image(), 215, 135)
canvas.SetColor(color.Black) canvas.SetColor(color.Black)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
return "", err return "", err
} }
if err = canvas.LoadFontFace(text.BoldFontFile, 30); err != nil { if err = canvas.ParseFontFace(data, 30); err != nil {
return "", err return "", err
} }
if args[0] == "" { if args[0] == "" {
@ -938,11 +938,11 @@ func makeFriend(cc *context, args ...string) (string, error) {
canvas.DrawImage(imgfactory.Rotate(face, 9, 55, 55).Image(), 836, 722) canvas.DrawImage(imgfactory.Rotate(face, 9, 55, 55).Image(), 836, 722)
canvas.DrawImage(back, 0, 0) canvas.DrawImage(back, 0, 0)
canvas.SetColor(color.White) canvas.SetColor(color.White)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
return "", err return "", err
} }
if err = canvas.LoadFontFace(text.BoldFontFile, 20); err != nil { if err = canvas.ParseFontFace(data, 20); err != nil {
return "", err return "", err
} }
if args[0] == "" { if args[0] == "" {
@ -1017,11 +1017,11 @@ func coupon(cc *context, args ...string) (string, error) {
canvas.Rotate(gg.Radians(-22)) canvas.Rotate(gg.Radians(-22))
canvas.DrawImage(imgfactory.Size(face, 60, 60).Image(), 100, 163) canvas.DrawImage(imgfactory.Size(face, 60, 60).Image(), 100, 163)
canvas.SetColor(color.Black) canvas.SetColor(color.Black)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
return "", err return "", err
} }
if err = canvas.LoadFontFace(text.BoldFontFile, 30); err != nil { if err = canvas.ParseFontFace(data, 30); err != nil {
return "", err return "", err
} }
if args[0] == "" { if args[0] == "" {
@ -1176,11 +1176,11 @@ func youer(cc *context, args ...string) (string, error) {
canvas.DrawImage(back, 0, 0) canvas.DrawImage(back, 0, 0)
canvas.DrawImage(imgfactory.Size(tou, 350, 350).Image(), 55, 165) canvas.DrawImage(imgfactory.Size(tou, 350, 350).Image(), 55, 165)
canvas.SetColor(color.Black) canvas.SetColor(color.Black)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
return "", err return "", err
} }
if err = canvas.LoadFontFace(text.BoldFontFile, 56); err != nil { if err = canvas.ParseFontFace(data, 56); err != nil {
return "", err return "", err
} }
if args[0] == "" { if args[0] == "" {
@ -1223,11 +1223,11 @@ func xiaotianshi(cc *context, args ...string) (string, error) {
canvas.DrawImage(back, 0, 0) canvas.DrawImage(back, 0, 0)
canvas.DrawImage(imgfactory.Size(face, 480, 480).Image(), 20, 80) canvas.DrawImage(imgfactory.Size(face, 480, 480).Image(), 20, 80)
canvas.SetColor(color.Black) canvas.SetColor(color.Black)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
return "", err return "", err
} }
if err = canvas.LoadFontFace(text.BoldFontFile, 35); err != nil { if err = canvas.ParseFontFace(data, 35); err != nil {
return "", err return "", err
} }
if args[0] == "" { if args[0] == "" {
@ -1327,11 +1327,11 @@ func van(cc *context, args ...string) (string, error) {
canvas.DrawImage(back, 0, 0) canvas.DrawImage(back, 0, 0)
canvas.DrawImage(imgfactory.Size(face, 480, 480).Image(), 20, 80) canvas.DrawImage(imgfactory.Size(face, 480, 480).Image(), 20, 80)
canvas.SetColor(color.Black) canvas.SetColor(color.Black)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
return "", err return "", err
} }
if err = canvas.LoadFontFace(text.BoldFontFile, 35); err != nil { if err = canvas.ParseFontFace(data, 35); err != nil {
return "", err return "", err
} }
if args[0] == "" { if args[0] == "" {
@ -1488,11 +1488,11 @@ func mengbi(cc *context, args ...string) (string, error) {
canvas.DrawImage(imgfactory.Size(face, 100, 100).Image(), 392, 460) canvas.DrawImage(imgfactory.Size(face, 100, 100).Image(), 392, 460)
canvas.DrawImage(imgfactory.Size(face, 100, 100).Image(), 606, 443) canvas.DrawImage(imgfactory.Size(face, 100, 100).Image(), 606, 443)
canvas.SetColor(color.Black) canvas.SetColor(color.Black)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
return "", err return "", err
} }
if err = canvas.LoadFontFace(text.BoldFontFile, 80); err != nil { if err = canvas.ParseFontFace(data, 80); err != nil {
return "", err return "", err
} }
if args[0] == "" { if args[0] == "" {

View File

@ -406,18 +406,18 @@ func init() {
canvas.SetRGB(1, 1, 1) // 白色 canvas.SetRGB(1, 1, 1) // 白色
canvas.Clear() canvas.Clear()
/***********下载字体,可以注销掉***********/ /***********下载字体,可以注销掉***********/
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) boldfd, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
ctx.SendChain(message.Text(serviceErr, err)) ctx.SendChain(message.Text(serviceErr, err))
} }
_, err = file.GetLazyData(text.FontFile, control.Md5File, true) fd, err := file.GetLazyData(text.FontFile, control.Md5File, true)
if err != nil { if err != nil {
ctx.SendChain(message.Text(serviceErr, err)) ctx.SendChain(message.Text(serviceErr, err))
} }
/***********设置字体颜色为黑色***********/ /***********设置字体颜色为黑色***********/
canvas.SetRGB(0, 0, 0) canvas.SetRGB(0, 0, 0)
/***********设置字体大小,并获取字体高度用来定位***********/ /***********设置字体大小,并获取字体高度用来定位***********/
if err = canvas.LoadFontFace(text.BoldFontFile, fontSize); err != nil { if err = canvas.ParseFontFace(boldfd, fontSize); err != nil {
ctx.SendChain(message.Text(serviceErr, err)) ctx.SendChain(message.Text(serviceErr, err))
return return
} }
@ -426,7 +426,7 @@ func init() {
canvas.DrawString("序号\t\t歌单名\t\t歌曲数量\t\t网易云歌单ID", 20, 50-h) // 放置在中间位置 canvas.DrawString("序号\t\t歌单名\t\t歌曲数量\t\t网易云歌单ID", 20, 50-h) // 放置在中间位置
canvas.DrawString("——————————————————————", 20, 70-h) canvas.DrawString("——————————————————————", 20, 70-h)
/***********设置字体大小,并获取字体高度用来定位***********/ /***********设置字体大小,并获取字体高度用来定位***********/
if err = canvas.LoadFontFace(text.FontFile, fontSize); err != nil { if err = canvas.ParseFontFace(fd, fontSize); err != nil {
ctx.SendChain(message.Text(serviceErr, err)) ctx.SendChain(message.Text(serviceErr, err))
return return
} }

View File

@ -235,14 +235,14 @@ func init() {
canvas.SetRGB(1, 1, 1) // 白色 canvas.SetRGB(1, 1, 1) // 白色
canvas.Clear() canvas.Clear()
/***********下载字体,可以注销掉***********/ /***********下载字体,可以注销掉***********/
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
ctx.SendChain(message.Text("[qqwife]ERROR: ", err)) ctx.SendChain(message.Text("[qqwife]ERROR: ", err))
} }
/***********设置字体颜色为黑色***********/ /***********设置字体颜色为黑色***********/
canvas.SetRGB(0, 0, 0) canvas.SetRGB(0, 0, 0)
/***********设置字体大小,并获取字体高度用来定位***********/ /***********设置字体大小,并获取字体高度用来定位***********/
if err = canvas.LoadFontFace(text.BoldFontFile, fontSize*2); err != nil { if err = canvas.ParseFontFace(data, fontSize*2); err != nil {
ctx.SendChain(message.Text("[qqwife]ERROR: ", err)) ctx.SendChain(message.Text("[qqwife]ERROR: ", err))
return return
} }
@ -251,7 +251,7 @@ func init() {
canvas.DrawString("群老婆列表", (1500-sl)/2, 160-h) // 放置在中间位置 canvas.DrawString("群老婆列表", (1500-sl)/2, 160-h) // 放置在中间位置
canvas.DrawString("————————————————————", 0, 250-h) canvas.DrawString("————————————————————", 0, 250-h)
/***********设置字体大小,并获取字体高度用来定位***********/ /***********设置字体大小,并获取字体高度用来定位***********/
if err = canvas.LoadFontFace(text.BoldFontFile, fontSize); err != nil { if err = canvas.ParseFontFace(data, fontSize); err != nil {
ctx.SendChain(message.Text("[qqwife]ERROR: ", err)) ctx.SendChain(message.Text("[qqwife]ERROR: ", err))
return return
} }
@ -263,7 +263,7 @@ func init() {
canvas.DrawString(slicename(info[2], canvas), 800, float64(260+50*i)-h) canvas.DrawString(slicename(info[2], canvas), 800, float64(260+50*i)-h)
canvas.DrawString("("+info[3]+")", 1150, float64(260+50*i)-h) canvas.DrawString("("+info[3]+")", 1150, float64(260+50*i)-h)
} }
data, err := imgfactory.ToBytes(canvas.Image()) data, err = imgfactory.ToBytes(canvas.Image())
if err != nil { if err != nil {
ctx.SendChain(message.Text("[qqwife]ERROR: ", err)) ctx.SendChain(message.Text("[qqwife]ERROR: ", err))
return return

View File

@ -140,14 +140,14 @@ func init() {
canvas.SetRGB(1, 1, 1) // 白色 canvas.SetRGB(1, 1, 1) // 白色
canvas.Clear() canvas.Clear()
/***********下载字体***********/ /***********下载字体***********/
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
ctx.SendChain(message.Text("[ERROR]:ERROR: ", err)) ctx.SendChain(message.Text("[ERROR]:ERROR: ", err))
} }
/***********设置字体颜色为黑色***********/ /***********设置字体颜色为黑色***********/
canvas.SetRGB(0, 0, 0) canvas.SetRGB(0, 0, 0)
/***********设置字体大小,并获取字体高度用来定位***********/ /***********设置字体大小,并获取字体高度用来定位***********/
if err = canvas.LoadFontFace(text.BoldFontFile, fontSize*2); err != nil { if err = canvas.ParseFontFace(data, fontSize*2); err != nil {
ctx.SendChain(message.Text("[ERROR]:ERROR: ", err)) ctx.SendChain(message.Text("[ERROR]:ERROR: ", err))
return return
} }
@ -156,7 +156,7 @@ func init() {
canvas.DrawString("你的好感度排行列表", (1100-sl)/2, 100) // 放置在中间位置 canvas.DrawString("你的好感度排行列表", (1100-sl)/2, 100) // 放置在中间位置
canvas.DrawString("————————————————————", 0, 160) canvas.DrawString("————————————————————", 0, 160)
/***********设置字体大小,并获取字体高度用来定位***********/ /***********设置字体大小,并获取字体高度用来定位***********/
if err = canvas.LoadFontFace(text.BoldFontFile, fontSize); err != nil { if err = canvas.ParseFontFace(data, fontSize); err != nil {
ctx.SendChain(message.Text("[ERROR]:ERROR: ", err)) ctx.SendChain(message.Text("[ERROR]:ERROR: ", err))
return return
} }
@ -189,7 +189,7 @@ func init() {
canvas.Fill() canvas.Fill()
i++ i++
} }
data, err := imgfactory.ToBytes(canvas.Image()) data, err = imgfactory.ToBytes(canvas.Image())
if err != nil { if err != nil {
ctx.SendChain(message.Text("[qqwife]ERROR: ", err)) ctx.SendChain(message.Text("[qqwife]ERROR: ", err))
return return

View File

@ -127,12 +127,12 @@ func init() {
canvas.DrawImage(back, 0, 0) canvas.DrawImage(back, 0, 0)
monthWord := now.Format("01/02") monthWord := now.Format("01/02")
hourWord := getHourWord(now) hourWord := getHourWord(now)
_, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true) data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
if err != nil { if err != nil {
ctx.SendChain(message.Text("ERROR: ", err)) ctx.SendChain(message.Text("ERROR: ", err))
return return
} }
if err = canvas.LoadFontFace(text.BoldFontFile, float64(back.Bounds().Size().X)*0.1); err != nil { if err = canvas.ParseFontFace(data, float64(back.Bounds().Size().X)*0.1); err != nil {
ctx.SendChain(message.Text("ERROR: ", err)) ctx.SendChain(message.Text("ERROR: ", err))
return return
} }
@ -140,12 +140,12 @@ func init() {
canvas.DrawString(hourWord, float64(back.Bounds().Size().X)*0.1, float64(back.Bounds().Size().Y)*1.2) canvas.DrawString(hourWord, float64(back.Bounds().Size().X)*0.1, float64(back.Bounds().Size().Y)*1.2)
canvas.DrawString(monthWord, float64(back.Bounds().Size().X)*0.6, float64(back.Bounds().Size().Y)*1.2) canvas.DrawString(monthWord, float64(back.Bounds().Size().X)*0.6, float64(back.Bounds().Size().Y)*1.2)
nickName := ctx.CardOrNickName(uid) nickName := ctx.CardOrNickName(uid)
_, err = file.GetLazyData(text.FontFile, control.Md5File, true) data, err = file.GetLazyData(text.FontFile, control.Md5File, true)
if err != nil { if err != nil {
ctx.SendChain(message.Text("ERROR: ", err)) ctx.SendChain(message.Text("ERROR: ", err))
return return
} }
if err = canvas.LoadFontFace(text.FontFile, float64(back.Bounds().Size().X)*0.04); err != nil { if err = canvas.ParseFontFace(data, float64(back.Bounds().Size().X)*0.04); err != nil {
ctx.SendChain(message.Text("ERROR: ", err)) ctx.SendChain(message.Text("ERROR: ", err))
return return
} }