Skip to content

Commit 732aae3

Browse files
committed
try fix Truncate
1 parent 6bda948 commit 732aae3

2 files changed

Lines changed: 17 additions & 23 deletions

File tree

shadow.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func DrawShadowedRectangle(canvas *gg.Context, x, y, w, h, r, sigma float64, ox,
2121
one.DrawRoundedRectangle(x, y, w, h, r)
2222
one.SetColor(shadowcolor)
2323
one.Fill()
24-
canvas.DrawImage(imaging.Blur(one.Image(), sigma), ox, oy)
24+
canvas.DrawImage(imaging.Blur(one.Image(), sigma), int(x)+ox, int(y)+oy)
2525
}
2626

2727
// DrawShadowedString 绘制带阴影的文字
@@ -33,7 +33,7 @@ func DrawShadowedString(canvas *gg.Context, s, fontfile string, x, y, point, sig
3333
}
3434
one.SetColor(shadowcolor)
3535
one.DrawString(s, x, y)
36-
canvas.DrawImage(imaging.Blur(one.Image(), sigma), ox, oy)
36+
canvas.DrawImage(imaging.Blur(one.Image(), sigma), int(x)+ox, int(y)+oy)
3737
err = canvas.LoadFontFace(fontfile, point)
3838
if err != nil {
3939
return
@@ -52,7 +52,7 @@ func DrawShadowedStringAnchored(canvas *gg.Context, s, fontfile string, x, y, po
5252
}
5353
one.SetColor(shadowcolor)
5454
one.DrawStringAnchored(s, x, y, ax, ay)
55-
canvas.DrawImage(imaging.Blur(one.Image(), sigma), ox, oy)
55+
canvas.DrawImage(imaging.Blur(one.Image(), sigma), int(x)+ox, int(y)+oy)
5656
err = canvas.LoadFontFace(fontfile, point)
5757
if err != nil {
5858
return

utils.go

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -43,40 +43,34 @@ func Transparency(dst image.Image, magnification float64) image.Image {
4343
}
4444

4545
// Truncate 截断文字
46-
func Truncate(fontfile string, texts []string, maxW, fontsize float64) ([]string, error) {
46+
func Truncate(fontfile string, texts []string, maxW, fontsize float64) (newtexts []string, err error) {
4747
one := gg.NewContext(1, 1)
48-
err := one.LoadFontFace(fontfile, fontsize)
48+
err = one.LoadFontFace(fontfile, fontsize)
4949
if err != nil {
50-
return nil, err
50+
return
5151
}
52-
newtexts := make([]string, 0, len(texts)*2)
52+
newtexts = make([]string, 0, len(texts)*2)
5353
for i := 0; i < len(texts); i++ {
54-
newlinetext, textw, tmpw := "", 0.0, 0.0
55-
text := texts[i]
5654
for len(texts[i]) > 0 {
5755
var tmp strings.Builder
58-
tmp.Grow(len(text))
59-
res := make([]rune, 0, len(text))
60-
for _, r := range text {
61-
tmp.WriteRune(r)
62-
width, _ := one.MeasureString(tmp.String()) // 获取文字宽度
63-
if width > maxW { // 如果宽度大于文字边距
64-
break // 跳出
56+
tmp.Grow(len(texts[i]))
57+
res := make([]rune, 0, len(texts[i]))
58+
for _, t := range texts[i] {
59+
tmp.WriteRune(t)
60+
width, _ := one.MeasureString(tmp.String())
61+
if width > maxW {
62+
break
6563
} else {
66-
tmpw = width
67-
res = append(res, r) // 写入
64+
res = append(res, t)
6865
}
6966
}
70-
newlinetext = string(res)
67+
newlinetext := string(res)
7168
newtexts = append(newtexts, newlinetext)
72-
if tmpw > textw {
73-
textw = tmpw
74-
}
7569
if len(newlinetext) >= len(texts[i]) {
7670
break
7771
}
7872
texts[i] = texts[i][len(newlinetext):]
7973
}
8074
}
81-
return newtexts, nil
75+
return
8276
}

0 commit comments

Comments
 (0)