refactor: 更新 LastDiffToImage 函数,替换 GIF 保存逻辑为 APNG 格式,优化图像保存方式

This commit is contained in:
lixiangwuxian 2025-05-14 00:10:14 +08:00
parent 89b672be8d
commit 21bf655f21
4 changed files with 23 additions and 15 deletions

4
go.mod
View File

@ -5,7 +5,7 @@ go 1.23.0
toolchain go1.23.3
require (
git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250513153039-c482f721b1ae
git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250513160811-82e354862815
github.com/bytedance/mockey v1.2.14
github.com/chromedp/cdproto v0.0.0-20241003230502-a4a8f7c660df
github.com/chromedp/chromedp v0.10.0
@ -29,6 +29,7 @@ require (
)
require (
github.com/HugoSmits86/nativewebp v1.2.0 // indirect
github.com/Microsoft/go-winio v0.4.14 // indirect
github.com/andybalholm/brotli v1.1.1 // indirect
github.com/bytedance/sonic v1.11.6 // indirect
@ -58,6 +59,7 @@ require (
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/jtolds/gls v4.20.0+incompatible // indirect
github.com/kettek/apng v0.0.0-20220823221153-ff692776a607 // indirect
github.com/klauspost/compress v1.18.0 // indirect
github.com/klauspost/cpuid/v2 v2.2.7 // indirect
github.com/leodido/go-urn v1.4.0 // indirect

6
go.sum
View File

@ -4,8 +4,12 @@ git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250513115110-2cf9da089612 h1:ew7Yc
git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250513115110-2cf9da089612/go.mod h1:luas4p32Wtsywcz+8HsxIB3gf65FDDBa+3XYhm0S2b8=
git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250513153039-c482f721b1ae h1:uFuLriBS+ciaUanGbe3FV8acxlwVvV1CA+zkn7292i0=
git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250513153039-c482f721b1ae/go.mod h1:luas4p32Wtsywcz+8HsxIB3gf65FDDBa+3XYhm0S2b8=
git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250513160811-82e354862815 h1:GyM0BUsJOk+1Jx1IGDKkkuSTrg+3KUi6/Qi4qnUnqAg=
git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250513160811-82e354862815/go.mod h1:+G/BR3iv5Yw0bIqZTRcBxpXwcv3bIso+XhN0MTfnjCY=
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
github.com/HugoSmits86/nativewebp v1.2.0 h1:XJtXeTg7FsOi9VB1elQYZy3n6VjYLqofSr3gGRLUOp4=
github.com/HugoSmits86/nativewebp v1.2.0/go.mod h1:YNQuWenlVmSUUASVNhTDwf4d7FwYQGbGhklC8p72Vr8=
github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=
github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA=
@ -100,6 +104,8 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/kettek/apng v0.0.0-20220823221153-ff692776a607 h1:8tP9cdXzcGX2AvweVVG/lxbI7BSjWbNNUustwJ9dQVA=
github.com/kettek/apng v0.0.0-20220823221153-ff692776a607/go.mod h1:x78/VRQYKuCftMWS0uK5e+F5RJ7S4gSlESRWI0Prl6Q=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=

View File

@ -607,13 +607,13 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
Position: image.Point{X: minX - 5, Y: minY - 5},
}
baseboard.AddSprite(&backgroundSpirit)
if len(avatarSpirit.Images) > 1 {
if err := baseboard.SaveToGIF(util.GenTempFilePath("cbl.gif")); err != nil {
log.Default().Printf("保存图片失败err:%v", err)
}
return util.GenTempFilePath("cbl.gif")
}
if err := baseboard.SaveToPng(util.GenTempFilePath("cbl.png")); err != nil {
// if len(avatarSpirit.Images) > 1 {
// if err := baseboard.SaveToGif(util.GenTempFilePath("cbl.gif")); err != nil {
// log.Default().Printf("保存图片失败err:%v", err)
// }
// return util.GenTempFilePath("cbl.gif")
// }
if err := baseboard.SaveToApng(util.GenTempFilePath("cbl.png")); err != nil {
log.Default().Printf("保存图片失败err:%v", err)
}
return util.GenTempFilePath("cbl.png")

View File

@ -426,13 +426,13 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
Position: image.Point{X: minX - 5, Y: minY - 5},
}
baseboard.AddSprite(&backgroundSpirit)
if len(avatarSpirit.Images) > 1 {
if err := baseboard.SaveToGIF(util.GenTempFilePath("css.gif")); err != nil {
log.Default().Printf("保存图片失败err:%v", err)
}
return util.GenTempFilePath("css.gif")
}
if err := baseboard.SaveToPng(util.GenTempFilePath("css.png")); err != nil {
// if len(avatarSpirit.Images) > 1 {
// if err := baseboard.SaveToGif(util.GenTempFilePath("css.gif")); err != nil {
// log.Default().Printf("保存图片失败err:%v", err)
// }
// return util.GenTempFilePath("css.gif")
// }
if err := baseboard.SaveToApng(util.GenTempFilePath("css.png")); err != nil {
log.Default().Printf("保存图片失败err:%v", err)
}
return util.GenTempFilePath("css.png")