From abd9531fb06a37f84cf5d90ad459ab36dcd26d3d Mon Sep 17 00:00:00 2001 From: lixiangwuxian Date: Wed, 9 Oct 2024 01:53:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E6=8D=A2=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/xibao/image_gen.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/service/xibao/image_gen.go b/service/xibao/image_gen.go index 8ac5ad1..719aafb 100644 --- a/service/xibao/image_gen.go +++ b/service/xibao/image_gen.go @@ -2,6 +2,7 @@ package xibao import ( "log" + "strings" "github.com/fogleman/gg" ) @@ -11,6 +12,7 @@ func GenerateCongratulationImage(text string, outputFile string) { im, err := gg.LoadImage("./resource/xibao_background.png") // 需要提前准备的背景图片 if err != nil { log.Print("无法加载喜报图片:", err) + return } // 创建与背景图片大小相同的画布 @@ -24,12 +26,27 @@ func GenerateCongratulationImage(text string, outputFile string) { // 设置字体和大小,字体文件需要自备,放在合适的路径 if err := dc.LoadFontFace("./resource/font.ttf", 96); err != nil { log.Print("无法加载字体:", err) + return } + // 设置文本颜色为红色 dc.SetRGB(1, 0, 0) - dc.DrawStringAnchored(text, float64(width)/2, float64(height)/2, 0.5, 0.5) + // 将文本按 \n 分割为多行 + lines := strings.Split(text, "\n") + // 设置初始绘制的 y 位置,可以根据需要调整 + startY := float64(height) / 2 + lineHeight := 120.0 // 行高,可以根据字体大小调整 + + // 居中绘制每一行 + for i, line := range lines { + x := float64(width) / 2 + y := startY + float64(i)*lineHeight + dc.DrawStringAnchored(line, x, y, 0.5, 0.5) + } + + // 将生成的图片保存为输出文件 err = dc.SavePNG(outputFile) if err != nil { log.Print("无法保存生成的图片:", err)